2009-03-20 13 views

Antwort

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 

Wo CHECK_POLICY=OFF schaltet ab Passwort Komplexitätsprüfung, etc.

+0

Ich stimme zu. Diese Methode ist der sp_addlogin-Methode überlegen, da Sie die Windows-Kontorichtlinie deaktivieren können. – 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

Jede Erklärung? –

5

Ab SQL Server 2005, sollten Sie grundsätzlich erstellen Benutzer in zwei Schritten:

  • Erstellen Sie eine "Anmeldung" zu Ihrem SQL Server als Ganzes
  • Benutzer für diese Anmeldung in jeder Datenbank erforderlich erstellen

Sie gehen würde dies wie so zu tun:

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

Und die "Verwendung" Ihre Datenbank und einen Benutzer für diesen Login erstellen:

USE AdventureWorks; 
CREATE USER MyNewUser FOR LOGIN MyNewUser 
1

Sie müssen es zunächst als Benutzer erstellen, und richten Sie dann die richtige p Bestätigungen für den Benutzer.

  1. Sie müssen sicherstellen, dass Ihre DB mit sowohl Benutzer-Auth und SQL-Auth konfiguriert ist, das Management Studio Bei Verwendung: Rechtsklick auf den Server, wählen Sie „Sicherheit“ sicherzustellen, dass die Serverauthentifizierung ist „SQL Server- und Windows-Authentifizierungsmodus "

  2. in Sicherheits-Logins, klicken Sie mit der rechten Maustaste und wählen Sie" New Login ", wählen Sie SQL-Authentifizierung, verwenden Sie den Benutzernamen und das Passwort.

  3. auf der DB möchten Sie, in der Sicherheit, Benutzer, wählen Sie neue Benutzer. Wählen Sie einen Benutzernamen, und fügen Sie den Login-Namen, den Sie gerade erstellt haben, und wählen Sie die Rollen, die Sie an diesen Benutzer angewendet werden soll (das heißt 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 
    

das ist es. Jetzt können Sie Ihre Verbindungszeichenfolge mit diesem Passwort erstellen.

2

Wie angegeben, verwenden Sie das CREATE LOGIN, um die Möglichkeit zu erstellen, eine Verbindung zu SQL Server als dieses Konto herzustellen. Verwenden Sie dann CREATE USER in der Datenbank, um dieser Anmeldung die Möglichkeit zu geben, auf die betreffende Datenbank zuzugreifen.

jedoch einige Sicherheitspunkte auf einige dieser Kommentare basiert:

  • Wenn möglich, möchten Sie die Windows-Authentifizierung verwenden, kein SQL Server basierte Anmeldung (das ist, was Sie, wenn Sie tun, benutze user/pwd auf diese Weise). Wenn Sie von einem Computer in derselben Domäne wie SQL Server ausführen, können Sie ein Dienstkonto verwenden, das ein Windows-Benutzerkonto ist. Dies stellt sicher, dass die Domäne die einzige Quelle für Sicherheit ist.
  • Sie haben nicht gesagt, welche Rechte der Benutzer benötigt.Vermeiden Sie möglichst die Verwendung von db_datareader- und db_datawriter-Rollen. Sie geben IMPLICIT Zugriff auf Tabellen und Ansichten und wenn jemand eine schnelle Berechtigungsprüfung für die Datenbank durchführt, denken sie möglicherweise nicht, die Mitgliedschaft in diesen Rollen zu überprüfen. Das bedeutet, dass Ihre Berichterstattung über Sicherheit verwendet wird. Best Practices sagen, dass Sie Ihre eigene Datenbankrolle erstellen, Berechtigungen zuweisen und den Benutzer zu einem Mitglied dieser Rolle machen.
  • Verwenden Sie nach Möglichkeit ein starkes Passwort. In einem Beispiel waren die Kennwortrichtlinien deaktiviert. SQL Server verwendet die Kennwortrichtlinie vom lokalen Server (der normalerweise auf Domänenebene festgelegt wird). Sie möchten diese starke Kennwortrichtlinie nach Möglichkeit beibehalten.
0
CREATE LOGIN MyNewUser WITH PASSWORD = 'top$secret' 

USE AdventureWorks 
CREATE USER MyNewUser FOR LOGIN MyNewUser 
GO 
+1

Ich sehe, du bist hier relativ neu. Es ist immer eine gute Übung, die vorherigen Antworten zu prüfen, bevor Sie Ihre eigenen veröffentlichen. Stellen Sie dabei sicher, dass Ihre Antwort eindeutige Informationen enthält, sei es in Bezug auf die Herangehensweise, Klarheit oder Vollständigkeit Ihrer Antwort im Vergleich zu anderen. –

Verwandte Themen