CICS トランザクションまたはバッチ ジョブのための適切なデータベース ユーザー資格情報を見つけるために、SQL Server XA スイッチ モジュールでは、Transact-SQL EXECUTE AS 文が発行されます。EXECUTE AS 文を適切に機能させるためには、SQL Server ログイン/ユーザー ID のセキュリティ環境に GRANT IMPERSONATE 文を含める必要があります。これにより、xa_open ユーザー ID による適切なデータベース ユーザー ID の偽装が可能になります。
次に、簡単な例を示します。セキュリティおよびデータベース環境で、異なる実装が指示される場合があります。ソリューションを実装する前に、Microsoft のマニュアルで EXECUTE AS 文およびその他の関連トピックを参照してください。
CREATE LOGIN [XAOPENUSER] WITH PASSWORD=N'XAOPEN', DEFAULT_DATABASE=[mfdb], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF CREATE SCHEMA [XAOPENUSER] CREATE USER [XAOPENUSER] FOR LOGIN [XAOPENUSER] WITH DEFAULT_SCHEMA=[XAOPENUSER]
CREATE SCHEMA [FRITZ] CREATE USER [FRITZ] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[FRITZ]
CREATE SCHEMA [ALLIE] CREATE USER [ALLIE] FOR LOGIN [ALLIE] WITH DEFAULT_SCHEMA=[ALLIE]
ALTER ROLE [db_owner] ADD MEMBER [SCOTT] ALTER ROLE [db_owner] ADD MEMBER [ALLIE] GRANT SELECT ON SCHEMA1.TABLE1 TO SCOTT GRANT ALL ON SCHEMA1.TABLE1 TO ALLIE
GRANT IMPERSONATE ON USER:: FRITZ TO XAOPENUSER; GRANT IMPERSONATE ON USER:: ALLIE TO XAOPENUSER;