我收到错误“无效的对象名称'sys.server_role_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_role_members也没有看到sys.server_principals系统视图。有谁知道为什么这些视图没有出现在Azure中?
答案 0 :(得分:5)
Azure SQL数据库中的服务器级角色和登录处理方式与SQL Server中的处理方式略有不同:
我建议您查看Managing Databases and Logins in Azure SQL Database,了解有关Azure SQL数据库和SQL Server之间用于服务器级管理的差异的详细信息。请注意,在大多数情况下,如果将contained database users与Azure SQL数据库一起使用,您将获得更好的性能,因为这些用户可以直接在用户数据库中进行身份验证,并避免登录所需的额外往返主机。
答案 1 :(得分:1)
使用[sys]。[database_permissions],[sys]。[objects]和[sys]。[database_principals] 而不是sys.server_role_members和sys.server_principals为我工作