如何(在SQL Server中)創建一個數據庫並創建一個用戶,並且這個用戶將僅對這個數據庫的管理員使用SQL腳本?我的意思是這個用戶不能在這個數據庫的外面做任何事情!如何用用戶創建SQL Server數據庫?
是否有可能創建只能添加,更新/編輯或刪除表中的數據的用戶?
我知道如何在MySQL中做到這一點,但不知道如何與SQL Server!
如何(在SQL Server中)創建一個數據庫並創建一個用戶,並且這個用戶將僅對這個數據庫的管理員使用SQL腳本?我的意思是這個用戶不能在這個數據庫的外面做任何事情!如何用用戶創建SQL Server數據庫?
是否有可能創建只能添加,更新/編輯或刪除表中的數據的用戶?
我知道如何在MySQL中做到這一點,但不知道如何與SQL Server!
假設您正在使用已創建登錄名爲'domain \ user'的Windows身份驗證。
--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中找到許多選項。
http://msdn.microsoft.com/en-us/library/ms176061.aspx
如果你需要創建一個login
還那麼你就需要對數據庫創建USER
之前以下。
--Using SQL Auth
CREATE LOGIN loginname WITH PASSWORD = 'passw0rd';
--Windows Auth
CREATE LOGIN domain\user FROM WINDOWS;
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