执行UPDATE sc语句时提示SELECT权限被拒,如何解决?
解决SQL Server执行UPDATE时出现SELECT权限拒绝的问题
这个问题我之前帮人排查过,其实原因挺有意思的——你执行的是UPDATE语句,但SQL Server在处理这类更新操作时,内部得先找出符合WHERE grade = 90条件的行,这一步就需要你当前使用的账号对student库的dbo.sc表有SELECT权限;同时要完成更新,你还得有UPDATE权限才行。下面分两种情况给你解决方法:
如果你有管理员权限(比如用sa账号或db_owner角色账号)
直接执行下面的SQL语句给目标账号授权:
- 先切换到目标数据库:
USE student; GO
- 授予
SELECT和UPDATE权限(把your_username换成你实际使用的登录名/用户名):
GRANT SELECT, UPDATE ON dbo.sc TO your_username; GO
如果需要对整个dbo架构下的所有表都拥有这两个权限,可以用更宽泛的授权:
GRANT SELECT, UPDATE ON SCHEMA::dbo TO your_username; GO
如果你是普通用户,没有权限管理账号
直接联系你们的数据库管理员(DBA),说明你需要对student.dbo.sc表的SELECT和UPDATE权限,让他们帮忙执行上面的授权语句就可以了。
内容的提问来源于stack exchange,提问作者Hotkang
相关产品推荐
相关产品推荐

