关于使用SQL Server 2008 R2,我有一个问题。
我最近在我的计算机上遇到问题,因此必须重新启动Windows,并且必须将一个用户的权限授予另一用户(使用属性中的安全功能)。最初授予权限时,它通过“访问被拒绝”消息。
经过大量研究,它停止产生此错误(我也需要授予权限的用户不可用),然后导致另一个问题发生,但这一次是在SQL Server中。它产生此消息;
数据库[dbName]无法访问。(对象浏览器)
当我尝试选择下拉选项以查看SQL Server中数据库的表和存储过程列表时,会发生此错误。我在以下链接中找到了对此的解释;
http://www.microsoft.com/products/ee/transform.aspx?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1617&EvtSrc=MSSQLServer&EvtID=916
然后我尝试像这样实现;
USE msdb; GO GRANT CONNECT TO [DBName\MyName] ; CREATE DATABASE [DBNAME] ON PRIMARY
使用我创建的脚本(幸运的是,在出现此问题之前),它通过大量消息进行了处理;
消息15151,级别16,状态1,行1 找不到用户’DBName \ MyName’,因为它不存在或您没有权限。 消息262,级别14,状态1,第2 行在数据库’master’中拒绝了CREATE DATABASE权限。 消息5011,级别14,状态9,第1行 用户没有权限更改数据库’DBName’,该数据库不存在,或者该数据库未处于允许访问检查的状态。 讯息5069,第16级,状态1,第1行…
经过这一系列的错误之后,我变得很困惑,因此,如果有人可以就如何解决该问题向我提供一些反馈,我将不胜感激。干杯。
通常,直接授予登录权限是个坏主意。您应该在数据库中创建角色对象,并且应该将数据库中的所有权限分配给角色。
然后,将数据库移动到另一台计算机(或重新安装)时,您只需修改服务器登录名和角色分配即可。