gpt4 book ai didi

sql-server - SSMS : "The SELECT permission was denied on the object ' extended_properties', 数据库 'mssqlsystem_resource' 中的权限问题,...错误 229)"

转载 作者:行者123 更新时间:2023-12-02 00:53:25 25 4
gpt4 key购买 nike

这是最简单的重现案例。

  1. 创建一个全新的数据库。 (我使用的是 SQL 2005。)
  2. 在新数据库中创建登录名、SQL 用户和表(请参阅下面的示例代码)。
  3. 启动 SSMS 并打开对象资源管理器,以新创建的用户身份登录。
  4. 尝试在对象资源管理器中打开“Tables”文件夹。

问题

失败并显示 this error message

消息文本:

TITLE: Microsoft SQL Server Management Studio
Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc)
For help, click: link
ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch.(Microsoft.SqlServer.ConnectionInfo)
The SELECT permission was denied on the object 'extended_properties', database mssqlsystemresource', schema 'sys'. (Microsoft SQL Server, Error: 229)
For help, click: link

该用户可以访问该表以及表中的记录。但用户无法访问对象资源管理器中的表列表。

SELECT USER_NAME() AS CurrentUser, col1
FROM dbo.TestTable

CurrentUser col1
----------- ----
robg_test 1000

我发现的唯一解决方法是为用户提供高于必要权限的权限(例如 db_datareader)。

问题:

允许该用户在对象资源管理器中打开表列表所需的最低权限是什么?

我尝试向用户授予 dbo 架构的各种权限,但这没有帮助。

另请注意,我使用 SQL 用户只是为了说明问题。最初的问题出在 AD 用户身上。

Here是 serverfault 中一个相对相似的问题。

<小时/>

代码

SET NOCOUNT ON
USE master
GO
IF EXISTS (SELECT * FROM sys.server_principals WHERE name = N'robg_test')
DROP LOGIN [robg_test]
GO
CREATE LOGIN [robg_test]
WITH
PASSWORD = N'CLK63!!black',
DEFAULT_DATABASE = [RGTest],
DEFAULT_LANGUAGE = [us_english],
CHECK_EXPIRATION = OFF,
CHECK_POLICY = ON
GO

IF EXISTS (SELECT * FROM sys.databases WHERE name = 'RGTest')
DROP DATABASE [RGTest]
GO
CREATE DATABASE [RGTest]
GO
USE [RGTest]
GO
CREATE USER [robg_test] FOR LOGIN [robg_test] WITH DEFAULT_SCHEMA = [dbo]
GO
CREATE TABLE dbo.TestTable (col1 int)
GO
GRANT SELECT ON dbo.TestTable TO [robg_test]
GO
INSERT INTO dbo.TestTable VALUES (1000)
GO

最佳答案

请检查您是否未选中 db_denydatareader 数据库角色。通过删除该检查,它对我有用。

关于sql-server - SSMS : "The SELECT permission was denied on the object ' extended_properties', 数据库 'mssqlsystem_resource' 中的权限问题,...错误 229)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2002773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com