2009-03-20 27 views

risposta

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 

Dove CHECK_POLICY=OFF spegne controllo della complessità della password, ecc.

+0

Sono d'accordo. Questo metodo è superiore al metodo sp_addlogin perché è possibile disattivare i criteri dell'account di 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

Qualche spiegazione ?? –

5

Come di SQL Server 2005, si dovrebbe fondamentalmente creare utenti in due fasi:

  • creare un "accesso" al proprio SQL Server nel suo complesso
  • creare utenti per questo accesso in ogni database necessario

Faresti andare a fare questo in questo modo:

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

E ' "utilizzazione" il database e crea un utente per questo login:

USE AdventureWorks; 
CREATE USER MyNewUser FOR LOGIN MyNewUser 
1

Dovrai crearlo prima come utente, quindi configurare il p corretto ermission per l'utente.

  1. si dovrà garantire che il vostro DB è configurato sia con Autenticazione dell'utente e SQL autenticazione Se si utilizza il Management Studio: tasto destro del mouse sul server, selezionare "Sicurezza" assicurarsi che l'autenticazione del server è "SQL Modalità Autenticazione server e Windows "

  2. in Security-login, fare clic con il tasto destro e selezionare" Nuovo accesso ", selezionare Autenticazione SQL, utilizzare il nome utente e la password che ti piacciono.

    USE [master] 
    GO 
    CREATE LOGIN [ test] WITH PASSWORD=N'test', DEFAULT_DATABASE=[MY_DATABASE], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF 
    GO 
    
  3. sul DB che si desidera, in sicurezza, gli utenti, selezionare nuovo utente. Selezionare un nome utente, e collegare il nome di login che avete appena creato e selezionare i ruoli che si desidera applicare a questo utente (vale a dire 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 
    

che è. Ora puoi creare la tua stringa di connessione usando questa password.

2

Come indicato, utilizzare CREATE LOGIN per creare la possibilità di connettersi a SQL Server come tale account. Quindi utilizzare CREATE USER all'interno del database per fornire a tale accesso la possibilità di accedere al database in questione.

Tuttavia, alcuni punti di sicurezza basati su alcuni di questi commenti:

  • Se possibile, si desidera utilizzare l'autenticazione di Windows, non è un account di accesso basato su SQL Server (che è quello che sta facendo quando si usare user/pwd in questo modo). Se si esegue da un computer sullo stesso dominio di SQL Server, è possibile utilizzare un account di servizio che è un account utente di Windows. Ciò garantisce che il dominio sia l'unica fonte di sicurezza.
  • Non hai detto quali diritti l'utente aveva bisogno.Evita di utilizzare i ruoli db_datareader e db_datawriter quando possibile. Forniscono l'accesso a tabelle e viste a IMPLICIT e se qualcuno sta eseguendo un controllo rapido delle autorizzazioni sul database, potrebbe non pensare di verificare l'appartenenza a questi ruoli. Ciò significa che stai usando i tuoi rapporti sulla sicurezza. Le best practice dicono di creare il proprio ruolo di database, assegnare le autorizzazioni ad esso e rendere l'utente un membro di quel ruolo.
  • Se possibile, utilizzare una password complessa. Un esempio ha disattivato le politiche relative alle password. SQL Server utilizzerà il criterio password dal server locale (che in genere viene impostato a livello di dominio). Si desidera mantenere questa politica di password complessa, se possibile.
0
CREATE LOGIN MyNewUser WITH PASSWORD = 'top$secret' 

USE AdventureWorks 
CREATE USER MyNewUser FOR LOGIN MyNewUser 
GO 
+1

Vedo che sei relativamente nuovo qui. È sempre buona norma esaminare le risposte precedenti prima di pubblicare le proprie. Nel fare ciò, assicurati che la tua risposta abbia alcune informazioni uniche, che si tratti di approccio, chiarezza o completezza della tua risposta rispetto ad altre. –

Problemi correlati