我正在使用此代码创建一个新用户。
/****** 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' is not a valid login or you do not have permission.
我不明白的部分是,我可以创建其他用户,但特别是这个用户看起来无效
我试图重命名我的数据库并收到此错误
Unable to rename primeboxs. (ObjectExplorer)
Rename failed for Database 'primebox'. (Microsoft.SqlServer.Smo)
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
The database could not be exclusively locked to perform the operation. (Microsoft SQL Server, Error: 5030)
我的猜测是问题在于数据库名称......但我从另一个数据库(我正在创建一个“想要的”备份)中获得了具有相同用户名和数据库名的代码。所以我在这里的一个角落里......任何帮助将不胜感激=)
PS:我的电脑名为box,windows 7。使用SQL Server 2008
最佳答案
在 SQL Server 中,用户不同于登录。
要为数据库创建用户,首先必须使用 create login
为服务器创建登录名。句法
关于sql-server-2008 - 为 SQL Server 2008 创建用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13123682/