1

SQL 展開スクリプトに取り組んでいます。

「User123」という名前のログインがあり、現在のデータベースに追加しましたが、MyDB に情報を記録するストアド プロシージャがあります。MyDB で User123 権限が必要なので、MyDB で権限を持つユーザーを作成しましたが、スクリプトを作成するにはどうすればよいですかこれは、ユーザーを手動で追加するのではなく..

私はこれまでのところこれを持っていますが、それを他のデータベースに追加する方法がわからないようです.「MyDB」は各サーバーに1つしかないためハードコードできますが、スクリプトを実行している現在のデータベースをハードコードすることはできません.

存在しない場合 (SELECT * FROM sys.database_principals WHERE name = N'User123')
始める
   CREATE USER [User123] FOR LOGIN [User123] WITH DEFAULT_SCHEMA=[dbo]
終わり
行く

これは現在のデータベースでのみ実行されます。他のデータベースに対して実行するにはどうすればよいですか。

例..

MyDB
  セキュリティ
   ユーザー 123

DB1
  セキュリティ
   ユーザー 123

データベースを手動で切り替えることなく、現在のデータベースと「MyDB」の両方にユーザーを追加するスクリプトが必要です

4

1 に答える 1

1

どうですか:

USE MyDB
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'User123')
BEGIN
   CREATE USER [User123] FOR LOGIN [User123] WITH DEFAULT_SCHEMA=[dbo]
END
GO

USE DB1
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'User123')
BEGIN
   CREATE USER [User123] FOR LOGIN [User123] WITH DEFAULT_SCHEMA=[dbo]
END
GO
于 2011-12-20T23:09:16.593 に答える