Chr*_*mes 52 sql sql-server permissions sysobjects dotnetnuke
设置:SQL Server 2005和DotNetNuke 05.01.02.
这开始于我尝试在其SQL脚本中安装具有"select*from dbo.sysobjects"的DNN模块.失败,出现以下错误:
对象'sysobjects',数据库'mssqlsystemresource',架构'sys'上的SELECT权限被拒绝.
我通过SQL Server Management Studio登录数据库作为DNN用户帐户,当我尝试在sysobjects视图上执行SELECT时,我收到相同的错误.
我尝试向该视图授予DNN用户帐户显式SELECT权限.当我通过转到安全性 - >用户 - > DNNUserLogin->右键单击 - >属性 - >安全性并向下滚动以查找sys.sysobjects视图来检查它时,它说该用户帐户具有dbo的显式权限:和SELECT复选框已选中.但我仍然无法在sysobjects视图上执行选择作为该DNN用户帐户.
我究竟做错了什么?我怎样才能做到这一点?
Chr*_*mes 101
这也是用户具有拒绝权限的问题; 在我急于授予权限我基本上给了用户一切.否认是杀了它.因此,只要我删除了这些权限,就可以了.
Rai*_*han 33
通过删除数据库角色db_denydatawriter和db_denydatreader数据库用户,我遇到了同样的错误并解决了问题.为此,在登录时选择适当的数据库用户>>属性>>用户映射>>找出数据库并选择它>>取消选中提到的Db用户角色.而已 !!
小智 5
在良好的服务器上执行此代码,它将为您提供 PUBLIC 角色的完整权限。复制输出并粘贴到有问题的服务器。执行。再次尝试登录。它解决了我们的问题。
SELECT SDP.state_desc ,
SDP.permission_name ,
SSU.[name] AS "Schema" ,
SSO.[name] ,
SSO.[type]
FROM sys.sysobjects SSO
INNER JOIN sys.database_permissions SDP ON SSO.id = SDP.major_id
INNER JOIN sys.sysusers SSU ON SSO.uid = SSU.uid
ORDER BY SSU.[name] ,
SSO.[name]
Run Code Online (Sandbox Code Playgroud)