Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何知道Azure SQL数据库中的所有dbo_所有者用户,包括那些映射到“dbo”的用户?_Azure_Azure Sql Database - Fatal编程技术网

如何知道Azure SQL数据库中的所有dbo_所有者用户,包括那些映射到“dbo”的用户?

如何知道Azure SQL数据库中的所有dbo_所有者用户,包括那些映射到“dbo”的用户?,azure,azure-sql-database,Azure,Azure Sql Database,我的问题的重要部分是,包括那些映射到“dbo”的 我需要检查特定用户是否在Azure SQL数据库上具有db_所有者角色。我能够获得明确授予db_所有者访问权限的用户的角色,但无法获得通过Azure门户创建的服务器管理员或Azure Active Directory管理员的角色,因为它们映射到用户“dbo”,但我无法知道哪些用户是dbo 为了解决我的问题,我要么需要一个没有dbo映射的所有用户的完整列表,要么需要一种知道谁映射到dbo的方法。有什么方法可以得到这些吗?据我所知,服务器管理员和Ac

我的问题的重要部分是,包括那些映射到“dbo”的

我需要检查特定用户是否在Azure SQL数据库上具有db_所有者角色。我能够获得明确授予db_所有者访问权限的用户的角色,但无法获得通过Azure门户创建的服务器管理员或Azure Active Directory管理员的角色,因为它们映射到用户“dbo”,但我无法知道哪些用户是dbo


为了解决我的问题,我要么需要一个没有dbo映射的所有用户的完整列表,要么需要一种知道谁映射到dbo的方法。有什么方法可以得到这些吗?

据我所知,服务器管理员和Active Directory管理员以dbo用户的身份进入用户数据库。同时,用户数据库的所有者也以dbo用户的身份进入数据库。但是服务器管理员和Active Directory管理员不以dbo用户的身份进入主数据库。有关更多详细信息,请参阅。此外,如果要获取所有db_所有者角色用户,请尝试使用脚本

 select @@ServerName [Server Name], DB_NAME() [DB Name], u.name [DB Role], u2.name [Member Name]
    from sys.database_role_members m
    join sys.database_principals u on m.role_principal_id = u.principal_id
    join sys.database_principals u2 on m.member_principal_id = u2.principal_id
    where u.name = 'db_owner'
    order by [Member Name]
此外,如果您想知道谁以dbo身份登录用户数据库,请尝试代码

#in user database run the command 
SELECT name, sid FROM sys.sysusers where name = 'dbo' . 
#in master database run the command 
SELECT name, sid FROM sys.sql_logins

据我所知,服务器管理员和Active Directory管理员以dbo用户的身份输入用户数据库。同时,用户数据库的所有者也以dbo用户的身份进入数据库。但是服务器管理员和Active Directory管理员不以dbo用户的身份进入主数据库。有关更多详细信息,请参阅。此外,如果要获取所有db_所有者角色用户,请尝试使用脚本

 select @@ServerName [Server Name], DB_NAME() [DB Name], u.name [DB Role], u2.name [Member Name]
    from sys.database_role_members m
    join sys.database_principals u on m.role_principal_id = u.principal_id
    join sys.database_principals u2 on m.member_principal_id = u2.principal_id
    where u.name = 'db_owner'
    order by [Member Name]
此外,如果您想知道谁以dbo身份登录用户数据库,请尝试代码

#in user database run the command 
SELECT name, sid FROM sys.sysusers where name = 'dbo' . 
#in master database run the command 
SELECT name, sid FROM sys.sql_logins

这并没有真正的帮助,它只是让我知道我已经知道的,这是db_所有者,但是已经映射了'dbo'用户。我想知道谁以dbo的身份登录。根据我的理解,您想知道谁以dbo的身份登录用户数据库。请尝试以下代码:在用户数据库中运行命令SELECT name,sid FROM sys.sysusers,其中name='dbo'。在主数据库中,运行命令SELECT name,sid FROM sys.sql\u logins通过这两个额外的查询,我终于可以得到所有信息了,谢谢。我将把这个标记为已接受的答案。能否将您的评论作为答案的一部分?这可能会对其他人有所帮助。这并不是真的有帮助,它只是让我知道了我已经知道的,即db_所有者,但是已经映射了“dbo”用户。我想知道谁以dbo的身份登录。根据我的理解,您想知道谁以dbo的身份登录用户数据库。请尝试以下代码:在用户数据库中运行命令SELECT name,sid FROM sys.sysusers,其中name='dbo'。在主数据库中,运行命令SELECT name,sid FROM sys.sql\u logins通过这两个额外的查询,我终于可以得到所有信息了,谢谢。我将把这个标记为已接受的答案。能否将您的评论作为答案的一部分?这可能会帮助其他人