如何在windows Azure SQL数据库中标识服务器管理员帐户名

如何在windows Azure SQL数据库中标识服务器管理员帐户名,sql,azure,azure-sql-database,Sql,Azure,Azure Sql Database,有两个管理帐户(Server admin和Active Directoryadmin)充当管理员。我的要求是找出这些账户的名称。我已经查看了sys.database\u principles视图和sys.sql\u logins视图,但找不到与此相关的任何内容。从SQL查询中,我找不到任何有用的系统视图来获取信息。有人能在这里帮助我吗?您可以使用下面的TSQL脚本来获取服务器管理员和Active Directory管理员帐户名 SELECT [name], [type], [type_desc]

有两个管理帐户(Server adminActive Directoryadmin)充当管理员。我的要求是找出这些账户的名称。我已经查看了sys.database\u principles视图和sys.sql\u logins视图,但找不到与此相关的任何内容。从SQL查询中,我找不到任何有用的系统视图来获取信息。有人能在这里帮助我吗?

您可以使用下面的TSQL脚本来获取服务器管理员和Active Directory管理员帐户名

SELECT [name], [type], [type_desc], [authentication_type], [authentication_type_desc] FROM sys.database_principals
WHERE (type = 'S' AND [name] != 'dbo' AND authentication_type = 1) OR 
(type = 'X' AND authentication_type = 4)
重要提示:

  • 您需要针对主系统数据库运行TSQL
  • 使用最新版本的SQL Server Management Studio
  • 或者,您可以从Azure门户获取这两个帐户名,如下所示。


    Reference:

    实际上,此查询返回多条记录。尝试创建一个sql登录名,然后在此登录名中创建一个用户,如下所示“创建登录名TestAdmin,密码=”;从“登录TestAdmin”创建用户TestAdmin,然后执行答案中给出的查询,它也将返回用户TestAdmin。从这个结果集,我无法判断哪一个是服务器管理员。根据我的要求,查询应该只返回两条记录(根据您的屏幕截图,它应该返回Rick和Rick)rickb@contoso.com)谢谢你的反馈。尝试从sys.sysusers中选择*,其中hasdaccess=1,islogin=1,[name]!='dbo'这个查询也有同样的问题。它返回多行。