我作为非 sa 用户“bhk”登录到 SQL Server 2005 数据库,该用户仅是“公共”服务器角色的成员。以下代码尝试在用户“bhk”调用的存储过程中执行。这行代码...
TRUNCATE TABLE #Table1
DBCC CHECKIDENT('#Table1', RESEED, @SequenceNumber) WITH NO_INFOMSGS
导致此错误...
用户 'guest' 无权为对象
'#Table1__00000000007F' 运行 DBCC CHECKIDENT。
我知道运行 DBCC CHECKIDENT 所需的权限...
调用者必须拥有该表,或者是 sysadmin 固定服务器角色、db_owner 固定数据库角色或 db_ddladmin 固定数据库角色的成员。
所以我有两个问题:
- 由于'bhk'正在调用一个创建临时表的存储过程,'bhk'不应该是所有者并被允许运行DBCC CHECKIDENT吗?
- 为什么错误消息返回用户 'guest' 没有权限?据我所知,我没有以“访客”身份登录。
任何帮助将不胜感激。