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

ale*_*xey 6 sql-server login azure azure-sql-database

我正在使用V12 Azure SQL.

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

SELECT * FROM sys.sql_logins;
Run Code Online (Sandbox Code Playgroud)

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

SELECT * FROM sys.sysusers;
Run Code Online (Sandbox Code Playgroud)

可是如何才能让之间的对应关系loginsusers

system table这个通信存储在哪里?

小智 7

为了找到映射为用户登录,看看sid从列sys.sysusers.

该值对应于master数据库中的sidsys.sql_logins.

不幸的是,您无法发现SID连接到的时间的登录名user database.master一旦获得sid和查询sys.sys_logins以获取名称,您将需要单独连接数据库.


kli*_*ngu 5

连接到主数据库后,您可以运行此查询以列出登录名和用户

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
Run Code Online (Sandbox Code Playgroud)

我希望这可以工作

  • 在 Azure SQL V12 中,这不会告诉您登录到用户的映射,如果这些用户是在非“主”数据库中创建的。朗尼的回答有效,但只是有点繁琐。 (3认同)