Tsql Azure SQL无效的对象名称';系统服务器角色成员';

Tsql Azure SQL无效的对象名称';系统服务器角色成员';,tsql,azure,azure-sql-database,Tsql,Azure,Azure Sql Database,我收到错误“无效的对象名称'sys.server\u role\u members'” 在SQL Server 2014中运行以下查询时: SELECT sr.name,sp.name FROM sys.server_role_members srm inner join sys.server_principals as sp ON srm.member_principal_id = sp.principal_id inner join sys.server_principals as sr

我收到错误“无效的对象名称'sys.server\u role\u members'”

在SQL Server 2014中运行以下查询时:

SELECT sr.name,sp.name 
FROM sys.server_role_members srm
inner join sys.server_principals as sp ON 
srm.member_principal_id = sp.principal_id
inner join sys.server_principals as sr ON
srm.role_principal_id = sr.principal_id

我正在使用Azure SQL并通过SQL Server 2014开发人员版本连接到它。我在系统视图下进行了检查,没有看到sys.server_角色_成员和sys.server_主体系统视图。有人知道为什么Azure中没有显示这些视图吗?

Azure SQL数据库中的服务器级角色和登录的处理方式与SQL Server中的稍有不同:

  • 主数据库中有两个服务器级安全角色:loginmanager和dbmanager
  • 在master中使用sys.sql\u登录,而不是sys.server\u主体

我鼓励您查看Azure SQL数据库和SQL Server for Server level administration之间差异的详细信息。请注意,在大多数情况下,如果与Azure SQL数据库一起使用,您将获得更好的性能,因为这些用户可以直接在用户数据库中进行身份验证,并避免登录所需的额外主控往返。

Azure SQL数据库中的服务器级角色和登录处理方式与SQL Server中的稍有不同:

  • 主数据库中有两个服务器级安全角色:loginmanager和dbmanager
  • 在master中使用sys.sql\u登录,而不是sys.server\u主体

我鼓励您查看Azure SQL数据库和SQL Server for Server level administration之间差异的详细信息。请注意,在大多数情况下,如果与Azure SQL数据库一起使用,您将获得更好的性能,因为这些用户可以直接在用户数据库中进行身份验证,并避免登录所需的额外master往返。

使用[sys].[Database\u permissions]、[sys].[objects]和[sys].[Database\u principals]
使用[sys].[database\u permissions]、[sys].[objects]和[sys].[database\u principals]代替sys.server\u role\u成员和sys.server\u主体为我工作
而不是sys.server_角色_成员和sys.server_负责人为我工作

谢谢。我应该使用什么来代替sys.server\u role\u member?您可以在master中为该登录创建一个登录名和一个用户(请参阅上面文章中的“如何分配SQL数据库服务器角色”)。然后,您可以将sys.database_role_成员与master中的sys.database_主体连接起来,查看哪些主体属于loginmanager和dbmanager角色。谢谢。我应该使用什么来代替sys.server\u role\u member?您可以在master中为该登录创建一个登录名和一个用户(请参阅上面文章中的“如何分配SQL数据库服务器角色”)。然后,您可以将sys.database_role_成员与master中的sys.database_主体连接起来,以查看哪些主体属于loginmanager和dbmanager角色。