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;
但是如何得到logins
和users
的对应关系呢?
存储这个对应关系的system table
在哪里?
要查找为用户映射的登录名,请查看 sys.sysusers
中的 sid
列。
此值对应于 master 数据库中 sys.sql_logins
的 sid
列。
不幸的是,您无法在连接到 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
我希望这能奏效
我正在使用 V12 Azure SQL
。
要列出所有登录 (server level
),我们可以在 master
数据库上使用此查询:
SELECT * FROM sys.sql_logins;
要列出所有用户 (database level
),我们可以在特定数据库上使用此查询:
SELECT * FROM sys.sysusers;
但是如何得到logins
和users
的对应关系呢?
存储这个对应关系的system table
在哪里?
要查找为用户映射的登录名,请查看 sys.sysusers
中的 sid
列。
此值对应于 master 数据库中 sys.sql_logins
的 sid
列。
不幸的是,您无法在连接到 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
我希望这能奏效