2010-07-26 2 views
3

데이터베이스를 만들고 사용자를 만드는 방법 (SQL Server에서)이 사용자는 SQL 스크립트 만 사용하여이 데이터베이스의 관리자가됩니까? 나는이 사용자가이 데이터베이스 밖에서 어떤 것을 할 수 없다는 것을 의미한다!사용자와 함께 SQL Server 데이터베이스를 만드는 방법은 무엇입니까?

그리고 테이블에서 데이터를 추가, 업데이트/편집 또는 삭제할 수있는 사용자를 만들 수 있습니까?

나는 MySQL에서 그렇게하는 법을 알고 있지만, SQL Server에서는 어떻게 할 수 있는지 잘 모른다.

답변

9

이미 작성된 'domain \ user'로그인으로 windows auth를 사용한다고 가정합니다.

--create the database 
CREATE DATABASE NewDB 

--create the user from the login 
Use NewDB 
CREATE USER [domain\user] FOR LOGIN [domain\user] 

--To give user SELECT/UPDATE/INSERT/DELETE on all tables 
EXEC sp_addrolemember 'db_datareader', 'domain\user' 
EXEC sp_addrolemember 'db_datawriter', 'domain\user' 

또는 데이터베이스를 통해 사용자를 관리자로 지정하려면 마지막 두 줄을로 바꿉니다.

--To give admin permissions 
EXEC sp_addrolemember 'db_owner', 'domain\user' 

CREATE DATABASE 또한 당신이이 BOL에서 찾을 수 있습니다해야 할 수 많은 옵션이 있습니다. 당신은 또한 login을 만들어야하는 경우

http://msdn.microsoft.com/en-us/library/ms176061.aspx

는 당신은 당신의 데이터베이스에 USER를 작성하기 전에 다음이 필요합니다.

--Using SQL Auth 
CREATE LOGIN loginname WITH PASSWORD = 'passw0rd'; 

--Windows Auth 
CREATE LOGIN domain\user FROM WINDOWS; 
3
DECLARE 
    @DatabaseName AS NVARCHAR(128), 
    @Username AS NVARCHAR(128), 
    @Password AS NVARCHAR(128), 
    @SQL AS NVARCHAR(MAX) 

SELECT 
    @DatabaseName = 'YourDatabaseName', 
    @Username = 'Username', 
    @Password = 'Password' 

SET @SQL = 'CREATE DATABASE [' + @DatabaseName + ']' 
EXEC (@SQL) 

SET @SQL = 'CREATE LOGIN [' + @Username + '] WITH PASSWORD = ''' + @Password + '''' 
EXEC (@SQL) 

SET @SQL = 'USE ' + @DatabaseName 
EXEC (@SQL) 

SET @SQL = 'CREATE USER [' + @Username + '] FOR LOGIN [' + @Username + ']' 
EXEC (@SQL) 

EXEC sp_addrolemember 'db_owner', @username 
관련 문제