Azure SQL 无效的对象名称 'sys.server_role_members'
Azure SQL Invalid object name 'sys.server_role_members'
我遇到错误 "Invalid object name '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 中?
服务器级角色和登录在 Azure SQL 数据库中的处理方式与在 SQL 服务器中的处理方式略有不同:
- master 数据库中有两个服务器级别的安全角色:loginmanager 和 dbmanager。
- 在 master 中使用 sys.sql_logins 而不是 sys.server_principals。
我建议您看看 Managing Databases and Logins in Azure SQL Database for details on the differences between Azure SQL Database and SQL Server for server-level administration. Note that in most cases, you'll get better performance if you use contained database users 与 Azure SQL 数据库,因为这些用户可以直接在用户数据库中进行身份验证,避免 master 所需的额外往返登录。
使用 [sys].[database_permissions]、[sys].[objects] 和 [sys].[database_principals]
而不是 sys.server_role_members 和 sys.server_principals 为我工作
我遇到错误 "Invalid object name '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 中?
服务器级角色和登录在 Azure SQL 数据库中的处理方式与在 SQL 服务器中的处理方式略有不同:
- master 数据库中有两个服务器级别的安全角色:loginmanager 和 dbmanager。
- 在 master 中使用 sys.sql_logins 而不是 sys.server_principals。
我建议您看看 Managing Databases and Logins in Azure SQL Database for details on the differences between Azure SQL Database and SQL Server for server-level administration. Note that in most cases, you'll get better performance if you use contained database users 与 Azure SQL 数据库,因为这些用户可以直接在用户数据库中进行身份验证,避免 master 所需的额外往返登录。
使用 [sys].[database_permissions]、[sys].[objects] 和 [sys].[database_principals] 而不是 sys.server_role_members 和 sys.server_principals 为我工作