TSQL:列出附加到 Azure SQL 服务器的所有数据库中的所有用户
TSQL: List all users in all databases attached to an Azure SQL Server
我知道我可以访问每个单独的数据库 运行:
SELECT name AS username FROM sys.sysusers
这让我获得了该 Azure SQL 数据库的用户列表。
从 Azure SQL 服务器上的主数据库,我可以 运行:
SELECT name AS databasename FROM dbo.sysdatabases
但是对于 Azure,我无法弄清楚的是如何遍历所有数据库,并为每个数据库列出其用户。
我显然无法为 USE @databasename 创建循环,因为 USE 不适用于 Azure SQL 数据库。
我能做的最好的事情就是编写代码来创建代码。我遍历了数据库并为每个数据库打印了一个字符串到 运行 sqlcmd。显然不理想,但这是我能想到的最好的。
对于遍历 Azure SQL 服务器上的所有 Azure SQL 数据库并在每个数据库上执行 运行ning 命令,有没有人有更好的建议?
在这种情况下,您需要遍历每个数据库以 运行 您想要的 T-SQL 但是,我确实有一个您可能会觉得有用的查询示例。
由于您希望在每个数据库的基础上获取所有用户的列表,而不一定要在每个数据库中查找 login
和 user
的出现次数,因此该脚本还将为您提供 username 值以及与身份验证方法有关的 authenitcation_type 和 type 值用户的主要类型。随着组织从传统的 SQL Login/User 类型帐户转向托管目录原则和身份组,此信息非常有用。这种情况可能适用于您的情况,也可能不适用,但我想我会分享:
select name as username,
create_date,
modify_date,
type_desc as type,
authentication_type_desc as authentication_type
from sys.database_principals
where type not in ('A', 'G', 'R')
and sid is not null
order by username;
可以在 [Bart Gawrych1 that is appropriately titled: List users in Azure SQL database
撰写的博客上找到此示例和其他信息
注意:他的示例不包括 Type = X
,我已将其修改为包括 External_User
或 External_Group
用户 type 值....只是为了提高认识。
此致,
麦克
我知道我可以访问每个单独的数据库 运行:
SELECT name AS username FROM sys.sysusers
这让我获得了该 Azure SQL 数据库的用户列表。
从 Azure SQL 服务器上的主数据库,我可以 运行:
SELECT name AS databasename FROM dbo.sysdatabases
但是对于 Azure,我无法弄清楚的是如何遍历所有数据库,并为每个数据库列出其用户。
我显然无法为 USE @databasename 创建循环,因为 USE 不适用于 Azure SQL 数据库。
我能做的最好的事情就是编写代码来创建代码。我遍历了数据库并为每个数据库打印了一个字符串到 运行 sqlcmd。显然不理想,但这是我能想到的最好的。
对于遍历 Azure SQL 服务器上的所有 Azure SQL 数据库并在每个数据库上执行 运行ning 命令,有没有人有更好的建议?
在这种情况下,您需要遍历每个数据库以 运行 您想要的 T-SQL 但是,我确实有一个您可能会觉得有用的查询示例。
由于您希望在每个数据库的基础上获取所有用户的列表,而不一定要在每个数据库中查找 login
和 user
的出现次数,因此该脚本还将为您提供 username 值以及与身份验证方法有关的 authenitcation_type 和 type 值用户的主要类型。随着组织从传统的 SQL Login/User 类型帐户转向托管目录原则和身份组,此信息非常有用。这种情况可能适用于您的情况,也可能不适用,但我想我会分享:
select name as username,
create_date,
modify_date,
type_desc as type,
authentication_type_desc as authentication_type
from sys.database_principals
where type not in ('A', 'G', 'R')
and sid is not null
order by username;
可以在 [Bart Gawrych1 that is appropriately titled: List users in Azure SQL database
撰写的博客上找到此示例和其他信息注意:他的示例不包括 Type = X
,我已将其修改为包括 External_User
或 External_Group
用户 type 值....只是为了提高认识。
此致, 麦克