在数据库'master'中创建表权限被拒绝

Posted

技术标签:

【中文标题】在数据库\'master\'中创建表权限被拒绝【英文标题】:create table permission denied in database 'master'在数据库'master'中创建表权限被拒绝 【发布时间】:2011-09-05 22:02:34 【问题描述】:

我已经在我的电脑上安装了免费版的 sql server 2008(sql server management studio express edition)。安装后出现以下错误

create table permission denied in database 'master'

我尝试重新安装几次,但我一直收到同样的错误。当我检查时

select user_account();

显示我是以访客身份登录的。我该如何解决这个问题?因为我不允许创建新的登录名。

【问题讨论】:

您是否已将自己从系统管理员角色中删除?还有你在什么操作系统上? 只是阅读一些建议以管理员身份运行 Sql Studio 可能会有所帮助的内容 - 无论如何在 vista 上 - 不确定是否有帮助 【参考方案1】:

我已阅读该错误可能是由 UAC 引起的(在旧版本的 SQL Server Express 上)。尝试右键单击 SQL Studio 并以管理员身份运行。

如果这不起作用,那么这里应该有针对同一问题的修复程序。大概值得一试。

Script to add the current user to the SQL Server 'sysadmin' role

【讨论】:

听起来 OP 使用的登录名没有CREATE DATABASE 权限。 @TheCodeKing:它不允许我创建任何新数据库。同样在功能选择中,我只获得数据库引擎服务和共享功能 我遇到了同样的错误,这个答案中提到的脚本对我有用。从技术上讲,需要做的只是两个声明(参见bit.ly/LN2Q6J):(1)CREATE LOGIN [your domain account] FROM WINDOWS; 和(2)SP_ADDSRVROLEMEMBER ‘your domain account’, ‘sysadmin’;。我可以做第一个,但不能做第二个;原因从 BOL 透露:“需要在添加新成员的角色中成为成员。” Catch 22. 正如脚本所做的那样,所需的魔法是在维护模式下重新启动 SQL 服务以添加角色,然后恢复正常。 链接已更改,目前可以在gist.github.com/hugodahl/8b34cbacf7bcd491b116 找到(根据hrzdata.com/node/57) 在安装sql server时,你是否将你当前的用户作为管理员添加到服务器?【参考方案2】:

您应该使用sp_addsrvrolemember 将您的用户添加到角色“系统管理员”中。这是帮助我解决此问题的链接:http://social.msdn.microsoft.com/Forums/en-US/sqlexpress/thread/76fc84f9-437c-4e71-ba3d-3c9ae794a7c4/

【讨论】:

【参考方案3】:

即使我以 master 身份登录,我也遇到了同样的问题。当我使用“select user_name();”时,我显示为“访客”登录。我在脚本之前使用了 'USE ,Database>' 子句确实有效。我希望这也适用于你们中的一些人。

【讨论】:

另一种方法是在您专注于查询以选择正确的数据库时检查左上角的“可用数据库”下拉菜单。当我拥有不同数据库的权限时,我正在击中大师。见这里:imgur.com/a/mSFJe 谢谢Jeff,这很有帮助。我将在答案中发布视觉效果,以使其更加突出。干杯。【参考方案4】:

如果您的表实际存在于不同的数据库(不是主数据库)中,您将需要切换到该数据库。更改数据库引用的 GUI 选项如下所示。

【讨论】:

【参考方案5】:
    select USER_NAME() 执行这个查询,如果你发现用户名是guest然后关闭sql server..

2.然后转到开始菜单右键单击sql server图标并选择“以管理员身份运行”选项..现在您可以创建数据库

【讨论】:

【参考方案6】:

如果您在 Sql server 2008 管理工作室中遇到与以下链接相同的错误,那么在我发现这个并检查 blipsalt http://social.msdn.microsoft.com/Forums/en-US/sqlexpress/thread/76fc84f9-437c-4e71-ba3d-3c9ae794a7c4/ 的答案后,将解决此错误

【讨论】:

【参考方案7】:

我也遇到了同样的问题。经过努力,我发现了这个美丽的链接

http://www.metatexis.net/manual_server/errorwhenusingmssqlservernamedpipesprovidercouldnotopenaconnectiontosqlserver.htm

我的 Sql Server 的问题是我可以使用 USER-NAME 帐户登录,但不能使用 USER-NAME\SQLEXPRESS 帐户登录。 USER-NAME 服务器只有访客权限,而 USER-NAME\SQLEXPRESS 具有完整权限。您可以通过执行此查询来检查。

select user_name()

我继续检查我的服务是否正在运行。您可以通过单击开始并输入“services.msc”来执行此操作。打开它并搜索“SQL Server (SQLEXPRESS)”。如果尚未启动,请启动它。

在我的情况下,它被禁用了。我右键单击它。转到属性并将“启动类型”更改为“自动”。

完成所有这些后,我再次启动 Sql Server Management Studio 并使用 USER-NAME\SQLEXPRESS 进行连接,它工作正常。

干杯,

【讨论】:

【参考方案8】:

您可能选择了主数据库。只需切换到您要写入的数据库。转到 SSMS 左上角的可用数据库,然后从下拉菜单中选择正确的数据库(见图)。

【讨论】:

【参考方案9】:

用户不是系统管理员。使用 SA 凭据登录数据库并转到 Security->Logins 并选择用户并右键单击属性,设置如下

【讨论】:

以上是关于在数据库'master'中创建表权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

在配置单元中创建数据库时权限被拒绝错误

EF Code First CREATE DATABASE 权限在数据库“主”中被拒绝

数据库“主”中的 CREATE DATABASE 权限被拒绝(无管理员权限)

为了在模式中创建表,角色需要的完整权限列表是啥?

“创建数据库权限被拒绝”错误

尝试在只写目录中创建/删除/重命名文件时权限被拒绝