V12 Azure SQL
を使用しています。
すべてのログイン(server level
)を一覧表示するには、master
データベースで次のクエリを使用できます。
SELECT * FROM sys.sql_logins;
すべてのユーザー(database level
)を一覧表示するには、このクエリを使用できます特定のデータベースで:
SELECT * FROM sys.sysusers;
しかし、logins
とusers
の間の対応を取得するにはどうすればよいですか?
この対応を保存するsystem table
はどこにありますか?
ユーザーにマップされたログインを見つけるには、sys.sysusers
のsid
列を確認します。
この値は、マスターデータベースのsys.sql_logins
のsid
列に対応します。
残念なことに、user database
に接続している間は、SID
のログイン名を見つけることができません。 master
を取得したら、sid
データベースに個別に接続し、sys.sys_logins
にクエリを実行して名前を取得する必要があります。
マスター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
これがうまくいくことを願っています