229: The SELECT/EXECUTE permission was denied on the object(拒绝了对对象的 SELECT/EXECUTE 权限)
SQL Server含义
用户无权对该对象执行所请求的操作(SELECT、INSERT、EXECUTE 等)。出于安全原因访问被拒绝。
原因
未向用户/角色授予所需权限、schema 所有权错误(所有权链断开)、对象上存在显式 DENY,或用户不是具备足够权限的角色成员。
解决方法
授予所需权限:GRANT SELECT ON dbo.MyTable TO UserName(或 GRANT EXECUTE ON dbo.MyProcedure TO ...)。将用户加入合适的角色(如 db_datareader)。删除任何显式 DENY。按照最小权限原则安排权限。用 sys.database_permissions 审计现有权限。
同一数据库的其他条目
- 9002The transaction log for database is full due to ...(数据库的事务日志已满,原因为 ...)
- 1105Could not allocate space for object in database because the filegroup is full(由于文件组已满,无法在数据库中为对象分配空间)
- 208Invalid object name(对象名无效)
- 4060Cannot open database requested by the login. The login failed(无法打开登录所请求的数据库。登录失败)
- 233A connection was successfully established with the server, but then an error occurred (no process is on the other end of the pipe)(已成功与服务器建立连接,但随后发生错误(管道的另一端上无任何进程))
- 823The operating system returned error to SQL Server during a read/write at offset in file (I/O error)(操作系统在文件的偏移量处读/写时向 SQL Server 返回了错误(I/O 错误))
- 824SQL Server detected a logical consistency-based I/O error (page corruption)(SQL Server 检测到基于逻辑一致性的 I/O 错误(页损坏))