11

我正在使用此代码创建一个新用户。

/****** Object:  User [primebox] ******/
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'primebox')
CREATE USER [primebox] FOR LOGIN [primebox] WITH DEFAULT_SCHEMA=[primebox]
GO

当我尝试创建此特定用户时出现以下错误。

Msg 15007, Level 16, State 1, Line 1
'primebox' 不是有效的登录或您没有权限。

我不明白的部分是,我可以创建其他用户,但这个特别看起来无效

我试图重命名我的数据库并收到此错误

无法重命名primebox。(对象浏览器)

数据库“primebox”重命名失败。(Microsoft.SqlServer.Smo)

执行 Transact-SQL 语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionInfo)

无法以独占方式锁定数据库以执行该操作。(Microsoft SQL Server,错误:5030)

我的猜测是问题出在数据库名称上……但是我从另一个数据库(我正在创建一个“想要的”备份)中获得了具有相同用户名和数据库名的代码。所以我在这里的一个角落......任何帮助将不胜感激=)

PS:我的电脑名是box,windows 7。使用SQL Server 2008

4

3 回答 3

26

登录与用户不同,这里是如何创建一个新的登录。

  1. 右键单击 SQL Server Management Studio 并选择 -> 以管理员身份运行。

  2. 使用默认的 Windows 身份验证正常登录。

  3. 选择数据库 -> 系统数据库 -> 主数据库。点击左上角的“新建查询”按钮。

  4. 将此查询粘贴到那里。(有关 SQL 登录选项的更多信息,请参见此处):

    CREATE LOGIN youruser WITH PASSWORD = 'yourpassword'
    
  5. 你应该得到这样的回应:

    Command(s) completed successfully.
    
  6. 检查以确保它已添加到dbo.syslogins

    select * from master.dbo.syslogins
    
  7. 关闭并重新启动 SQL 管理服务器(以管理员身份)并通过转到 SQL Server 配置面板并单击重新启动来重新启动 SQL Server。

  8. 在对象资源管理器中单击主 EL-PC\SQLEXPRESS -> Security -> Logins。

  9. 您新创建的登录应该在那里,右键单击并转到属性,您必须授予该用户访问默认数据库的权限,并设置默认数据库。

  10. 关闭 SQL Server 并使用 SQL Server 身份验证选项和用户名/密码再次登录。您现在应该使用新用户登录。

如何创建新用户

  1. 以管理员身份启动 SQL Server Management Studio。
  2. 展开要创建新数据库用户的数据库。
  3. 右键单击“安全”文件夹选择“新用户”,如果该选项不可用,您可能单击了服务器的安全文件夹。
  4. 添加名称和配置,然后单击确定。
于 2014-03-31T20:47:14.867 回答
10

在 SQL Server 中,用户不同于登录。

要为数据库创建用户,首先必须使用以下create login语法为服务器创建登录名

于 2012-10-29T14:36:59.313 回答
4

此外,您还可以通过 Sql Server Management Studio 的 UI 通过单击主安全文件夹来创建新登录名在此处输入图像描述

并在创建用户之后

于 2014-07-30T07:20:17.447 回答