SQL Azure:列出所有登录名和用户

SQL Azure: list all logins and users

我正在使用 V12 Azure SQL

要列出所有登录 (server level),我们可以在 master 数据库上使用此查询:

SELECT * FROM sys.sql_logins;

要列出所有用户 (database level),我们可以在特定数据库上使用此查询:

SELECT * FROM sys.sysusers;

但是如何得到loginsusers的对应关系呢?

存储这个对应关系的system table在哪里?

要查找为用户映射的登录名,请查看 sys.sysusers 中的 sid 列。

此值对应于 master 数据库中 sys.sql_loginssid 列。

不幸的是,您无法在连接到 user database 时发现 SID 的登录名。一旦您拥有 sid 并查询 sys.sql_logins 以获取名称,您必须单独连接到 master 数据库。

当连接到主​​数据库时,您可以运行这个查询来列出登录名和用户

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

我希望这能奏效