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