2009-03-20 3 views

ответ

15
CREATE LOGIN [user] WITH PASSWORD='password', 
     DEFAULT_DATABASE=[your_db], CHECK_POLICY=OFF 
GO 

CREATE USER [user] FOR LOGIN [user] 
EXEC sp_addrolemember N'db_datareader', N'your_db' 
EXEC sp_addrolemember N'db_datawriter', N'your_db' 
GO 

Где CHECK_POLICY=OFF отключающая проверка сложности пароля и т. д.

+0

Согласен. Этот метод превосходит метод sp_addlogin, поскольку вы можете отключить политику учетной записи Windows. – djangofan

-1
USE [MASTER] 


EXEC master.dbo.sp_addlogin @loginame = N'USERNAME', @passwd = 'THEPASS' @defdb = N'master', @deflanguage = N'us_english' 


USE [YOUR_DB] 
    EXEC dbo.sp_grantdbaccess @loginame = N'USERNAME', @name_in_db = N'USERNAME' 
+0

Любые объяснения ?? – 2014-01-22 08:45:16

5

По состоянию на SQL Server 2005, вы должны в основном создавать пользователей в два этапа:

  • создать «логин» на ваш SQL Server в целом
  • создать пользователя для этого входа в каждую базу данных

Вы бы идти об этом так:

CREATE LOGIN MyNewUser WITH PASSWORD = 'top$secret'; 

И "ИСПОЛЬЗОВАТЬ" базы данных и создать пользователя для этого входа:

USE AdventureWorks; 
CREATE USER MyNewUser FOR LOGIN MyNewUser 
1

Вам нужно будет создать его сначала как пользователь, а затем настроить правильный p ermissions для пользователя.

  1. вы должны убедиться, что ваш DB настроен как Идент.польз и SQL аутентификации При использовании Management Studio: щелкните правой кнопкой мыши на сервере, выберите «Security» убедитесь, что проверка подлинности сервера «SQL Server и Windows Authentication mode "

  2. в разделе« Безопасность », щелкните правой кнопкой мыши и выберите« Новый вход », выберите« Аутентификация SQL », используйте имя пользователя и пароль, которые вам нравятся.

    USE [master] 
    GO 
    CREATE LOGIN [ test] WITH PASSWORD=N'test', DEFAULT_DATABASE=[MY_DATABASE], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF 
    GO 
    
  3. на базе БД, которую вы хотите, в безопасности, пользователи, выберите нового пользователя. Выберите имя пользователя и присоединить имя пользователя, вы только что создали, и выберите роли, которые вы хотите применить к данному пользователю (т.е. db_datareader, db_datawriter):

    USE [MY_DATABASE] 
    GO 
    CREATE USER [myDefaultUser] FOR LOGIN [ test] 
    GO 
    USE [MY_DATABASE] 
    GO 
    EXEC sp_addrolemember N'db_datareader', N'myDefaultUser' 
    GO 
    USE [MY_DATABASE] 
    GO 
    EXEC sp_addrolemember N'db_datawriter', N'myDefaultUser' 
    GO 
    

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

2

Как указано, используйте CREATE LOGIN, чтобы создать возможность подключения к SQL Server в качестве этой учетной записи. Затем используйте CREATE USER в базе данных, чтобы дать этому логину возможность доступа к соответствующей базе данных.

Однако несколько пунктов безопасности на основе некоторых из этих комментариев:

  • Если это вообще возможно, вы хотите использовать проверку подлинности Windows, а не Войти на базе SQL Server (который является то, что вы делаете, когда вы используйте user/pwd таким образом). Если вы работаете с компьютером в том же домене, что и SQL Server, вы можете использовать учетную запись службы, которая является учетной записью пользователя Windows. Это гарантирует, что домен является единственным источником безопасности.
  • Вы не указали, какие права необходимы пользователю.Избегайте использования роли db_datareader и db_datawriter, когда это возможно. Они дают IMPLICIT доступ к таблицам и представлениям, и если кто-то выполняет проверку быстрых разрешений в базе данных, они могут не подумать проверить членство в этих ролях. Это означает, что ваши отчеты по безопасности используются. Лучшие практики говорят, чтобы создать свою собственную роль базы данных, назначить ей права и сделать пользователя членом этой роли.
  • По возможности используйте надежный пароль. В одном примере политика паролей отключена. SQL Server будет использовать политику паролей с локального сервера (который обычно устанавливается на уровне домена). Вы хотите сохранить эту сильную политику паролей, если это возможно.
0
CREATE LOGIN MyNewUser WITH PASSWORD = 'top$secret' 

USE AdventureWorks 
CREATE USER MyNewUser FOR LOGIN MyNewUser 
GO 
+1

Я вижу, что вы относительно новичок. Всегда рекомендуется проверять предыдущие ответы перед публикацией своих собственных. При этом убедитесь, что ваш ответ содержит уникальную информацию, будь то в подходе, ясности или полноте вашего ответа по сравнению с другими. –

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