關於SQL Server資料庫中的使用者許可權和角色管理

酒笙匿清栀發表於2024-03-26

簡介

在SQL Server資料庫系統中,管理使用者許可權和角色對於確保資料安全、完整性和可訪問性至關重要。在本文中,我們將探討在SQL Server資料庫中建立使用者、分配許可權和管理角色的過程。我們將涵蓋基本概念,並提供帶有SQL程式碼片段的實際示例。

引言

使用者管理涉及建立使用者帳戶、分配適當的許可權以及將使用者組織到角色中。角色透過將具有相似訪問級別的使用者分組來簡化許可權管理。很多人在實際的專案實踐中,不會新建使用者或者分配角色許可權有問題,本文采用SQL程式碼操作,提供簡便的操作方法,新建使用者併為其分配角色和許可權。

建立伺服器登入名

當建立伺服器登入名以後,該賬號將可以登入伺服器,初始化狀態下的登入名是沒有任何許可權的,僅可進入伺服器

關於SQL Server資料庫中的使用者許可權和角色管理
--建立伺服器
USE master
CREATE LOGIN USER1 WITH PASSWORD = '123456';
View Code

將使用者對映到指定資料庫

當使用者登入資料庫伺服器以後,僅可看見已對映的資料庫

關於SQL Server資料庫中的使用者許可權和角色管理
--將使用者對映到資料庫
USE Student;
CREATE USER USER1 FOR LOGIN USER1 ;
View Code

建立資料庫角色

建立你要要的角色名,並選擇dbo架構,為分配角色給使用者做準備

關於SQL Server資料庫中的使用者許可權和角色管理
-- 建立資料庫角色
CREATE ROLE UserViewRole AUTHORIZATION dbo;
View Code

分配許可權

許可權控制使用者可以在特定資料庫物件上執行的操作。許可權可以在資料庫級別或在諸如表、檢視或儲存過程等單個物件上授予。本文簡單示例查詢許可權,將許可權新增到角色。

關於SQL Server資料庫中的使用者許可權和角色管理
-- 新增對目標表的 SELECT 許可權
GRANT SELECT ON [dbo].[Student] TO UserViewRole;
GRANT SELECT ON [dbo].[Interface] TO UserViewRole;
View Code

分配角色

將使用者新增到角色:

關於SQL Server資料庫中的使用者許可權和角色管理
-- 將使用者新增到角色
EXEC sp_addrolemember N'UserViewRole', N'Use1';
View Code

完成以上操作,將完成使用者新建與角色、許可權的分配操作,一下附加不新增角色,直接賦予許可權的操作:

--資料庫級別許可權
--在資料庫級別授予許可權:

---- 在資料庫上授予SELECT許可權
--GRANT SELECT TO User1;

---- 在資料庫中的所有儲存過程上授予EXECUTE許可權
--GRANT EXECUTE TO User1;
--物件級別許可權
--在特定物件上授予許可權:

---- 在表上授予SELECT許可權
--GRANT SELECT ON TableName TO User1;

---- 在儲存過程上授予EXECUTE許可權
--GRANT EXECUTE ON StoredProcedureName TO User1;

結論

管理使用者許可權和角色對於維護資料庫安全性並確保使用者對資料具有適當訪問許可權至關重要。透過遵循最佳實踐並利用SQL Server的強大功能來管理使用者,您可以有效地控制對資料庫資源的訪問。

在本文中,我們介紹了在SQL Server中建立使用者、分配許可權和管理角色的基礎知識。請記住定期審查和更新使用者許可權,以符合您組織的安全政策和資料訪問要求。

相關文章