我正在使用 T-SQL(使用 C# 运行脚本)在 SQL Server 中创建数据库。我很困惑:
如果我创建以用户身份登录的数据库:“myUser1”(myUser1 是我创建的登录名,具有 db_creator 角色)。
我是否必须在 T-SQL 中为该用户创建一个登录名,例如:
CREATE LOGIN [myUser1] WiTH Password = "test"
Go
Exec sp_grantdbaccess, myUser1
Go
还是我不需要这个?
我正在使用 T-SQL(使用 C# 运行脚本)在 SQL Server 中创建数据库。我很困惑:
如果我创建以用户身份登录的数据库:“myUser1”(myUser1 是我创建的登录名,具有 db_creator 角色)。
我是否必须在 T-SQL 中为该用户创建一个登录名,例如:
CREATE LOGIN [myUser1] WiTH Password = "test"
Go
Exec sp_grantdbaccess, myUser1
Go
还是我不需要这个?
创建登录后,您需要在您希望使用的每个数据库上为该登录创建一个用户。
use [Database]
Create USER [user] FOR LOGIN [user]
exec sp_addrolemember N'role',N'user'
创建一个新的登录
CREATE LOGIN LoginName
WITH PASSWORD = 'password';
向此登录添加一个新用户:
USE NameOfDataBase;
GO
IF NOT EXISTS (SELECT *
FROM sys.database_principals
WHERE name = N'LoginName')
BEGIN
CREATE USER [LoginName] FOR LOGIN [LoginName];
EXECUTE sp_addrolemember N'db_owner', N'LoginName';
END