我是否必须为数据库创建登录

时间:2013-08-05 09:35:28

标签: sql sql-server tsql

我使用T-SQL在SQL Server中创建数据库(使用C#运行脚本)。 我很困惑:

如果我创建以用户身份登录的数据库:“myUser1”(myUser1是我创建的登录名,具有db_creator角色)。

我是否必须在T-SQL中为此用户创建登录名,如:

CREATE LOGIN [myUser1] WiTH Password = "test"
Go
Exec sp_grantdbaccess, myUser1
Go

或者我不需要这个?

2 个答案:

答案 0 :(得分:1)

创建登录后,您需要在要使用的每个数据库上为该登录创建用户。

 use [Database]
 Create USER [user] FOR LOGIN [user]

 exec sp_addrolemember N'role',N'user'

答案 1 :(得分:1)

创建new login

CREATE LOGIN LoginName
    WITH PASSWORD = 'password';

在此登录名中添加new user

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