首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 登入帳號與使用者權限程式化管理:系統預存程序完整指南

     編輯:關於SqlServer

核心系統預存程序

預存程序功能關鍵參數
sp_addlogin建立伺服器層級登入帳號@loginame, @passwd, @defdb, @deflanguage
sp_adduser在資料庫建立使用者對應登入@loginame, @name_in_db, @grpname
sp_droplogin移除伺服器登入帳號@loginame
sp_dropuser移除資料庫使用者@name_in_db
sp_grantdbaccess授權登入存取資料庫 (同 sp_adduser)@loginame
sp_addrolemember將使用者加入資料庫角色@rolename, @membername
sp_droprolemember從角色移除使用者@rolename, @membername
sp_password變更登入密碼@old, @new, @loginame
sp_defaultdb變更預設資料庫@loginame, @defdb
sp_helplogins檢視登入帳號資訊@loginame (選填)

實作範例:建立帳號並授予 db_owner

-- 1. 建立登入帳號 (master)
EXEC sp_addlogin 'app_user', 'P@ssw0rd!', 'AppDB'

-- 2. 切換至目標資料庫建立使用者
USE AppDB
EXEC sp_grantdbaccess 'app_user'

-- 3. 加入 db_owner 角色
EXEC sp_addrolemember 'db_owner', 'app_user'

安全性最佳實務

  • 最小權限原則:避免直接授 db_owner,建立自訂角色僅授必要權限 (SELECT, EXECUTE 等)
  • 密碼策略:SQL Server 2005+ 強制執行 Windows 密碼原則,舊版需自行驗證複雜度
  • 稽核追蹤:啟用登入稽核 (成功/失敗) 並定期審查
  • 應用程式角色:考慮 sp_setapprole 讓應用以角色身分連線,不直接使用 SQL 登入
  • 含參數化:所有動態 SQL 必須參數化,防止注入

現代化替代語法 (SQL Server 2005+)

-- 建立登入
CREATE LOGIN app_user WITH PASSWORD = 'P@ssw0rd!', DEFAULT_DATABASE = AppDB;

-- 建立使用者
USE AppDB;
CREATE USER app_user FOR LOGIN app_user;

-- 授權
ALTER ROLE db_owner ADD MEMBER app_user;
-- 或精細權限
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::dbo TO app_user;

結語

掌握系統預存程序與現代 DDL 語法,配合最小權限與稽核機制,即可建立安全、可維護的 SQL Server 帳號權限管理體系。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved