web-dev-qa-db-ja.com

SQL Azure:すべてのログインとユーザーを一覧表示します

V12 Azure SQLを使用しています。

すべてのログイン(server level)を一覧表示するには、masterデータベースで次のクエリを使用できます。

SELECT * FROM sys.sql_logins;

すべてのユーザー(database level)を一覧表示するには、このクエリを使用できます特定のデータベースで

SELECT * FROM sys.sysusers;

しかし、loginsusersの間の対応を取得するにはどうすればよいですか?

この対応を保存するsystem tableはどこにありますか?

7
alexey

ユーザーにマップされたログインを見つけるには、sys.sysuserssid列を確認します。

この値は、マスターデータベースのsys.sql_loginssid列に対応します。

残念なことに、user databaseに接続している間は、SIDのログイン名を見つけることができません。 masterを取得したら、sidデータベースに個別に接続し、sys.sys_loginsにクエリを実行して名前を取得する必要があります。

8
Lonny Bastien

マスターDBに接続すると、このクエリを実行して、ログインとユーザーのリストを作成できます。

select l.name as [login name],u.name as [user name] from sysusers u inner join sys.sql_logins l on u.sid=l.sid

これがうまくいくことを願っています

4
klingu