承上篇圖形化操作,本文提供 T-SQL 腳本實現自動化部署與版本控制。涵蓋 Windows/SQL 登入管理、伺服器/資料庫角色、權限授予/拒絕/回收完整語法。
-- 授與登入權限
sp_grantlogin 'domain\user';
sp_grantlogin 'domain\group';
sp_grantlogin 'BUILTIN\Users';
-- 拒絕登入
sp_denylogin 'domain\user';
sp_denylogin 'BUILTIN\Users';
-- 移除登入
sp_revokelogin 'domain\user';
-- 建立登入
EXEC sp_addlogin 'login', 'password', 'default_db', 'language', 'sid', 'encryption_option';
-- 範例
EXEC sp_addlogin 'test1';
EXEC sp_addlogin 'test2', 'password', 'northwind';
-- 修改密碼、預設資料庫、預設語言
EXEC sp_password 'oldpwd', 'newpwd', 'login';
EXEC sp_defaultdb 'login', 'database';
EXEC sp_defaultlanguage 'login', 'language';
-- 刪除登入
EXEC sp_droplogin 'login';
-- 建立角色
sp_addrole 'role_name', 'owner'; -- owner 預設 dbo
-- 範例
USE northwind;
sp_addrole 'sales', 'dbo';
sp_addrole 'manager';
sp_droprole 'manager';
sp_addsrvrolemember 'login', 'role'; -- 如 sysadmin, securityadmin
sp_dropsrvrolemember 'login', 'role';
sp_addrolemember 'role', 'account'; -- role 為固定或自訂角色
sp_droprolemember 'role', 'account';
sp_grantdbaccess 'login', 'name_in_db'; -- name_in_db 預設同登入名
sp_revokedbaccess 'name_in_db';
-- 授與所有使用者查詢訂單表
USE northwind;
GRANT SELECT ON 訂單 TO public;
-- 授與自訂角色 salesmanager 修改 sales 表
GRANT INSERT, UPDATE, DELETE ON sales TO salesmanager;
-- 授與 user1 查看 publishers 全表,但僅能修改 pub_id 欄
GRANT SELECT, UPDATE(pub_id) ON publishers TO user1;
本文出自「陳宣宋微軟技術空間」博客,請保留出處:https://chensky.blog.51cto.com/177526/38691