2013-08-05 2 views
0

Я создаю базу данных на SQL Server с использованием T-SQL (используя C# для запуска скрипта). Я смущен:Мне нужно создать логин для базы данных

Если я создаю базу данных, зарегистрированную как пользователь: «myUser1» (myUser1 - это логин, который я создал, с ролью db_creator).

Должен ли я создать имя для этого пользователя в T-SQL, как:

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

Или мне не нужно это?

+0

'login' необходим для доступа к серверу в целом; для каждой базы данных вам нужно создать ** 'user' ** для этой конкретной базы данных на основе' login' –

ответ

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 
+0

разница между LoginName и NewUserName? –

+1

Обновлен над сценарием. Я прошел эту неделю до последней, но не могу найти свой сценарий. – christiandev

+0

LoginName и UserName могут быть одинаковыми? –

1

После создания логина вам необходимо создать пользователя для этого входа в каждую базу данных, которую вы хотите использовать.

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

exec sp_addrolemember N'role',N'user' 
+0

Не нужно ли добавлять пароль? –

+0

Только для входа. – Ejaz

Смежные вопросы