數據庫,角色,用戶,安全
登錄SQL server 2008可以用windows身份驗證也可以用sql server身份驗證,不論那種,進入數據庫后
都擁有超級用戶的權限,這顯然是不太安全的。合理的做法是:對於一個數據庫,應該是由不同權限的用戶
進行操作和管理。
本博文將結合一個例子來講解如何建立數據庫,並為數據庫建立不同權限的用戶。
一、登錄數據庫管理系統(首先要打開SQL Server數據庫服務)
1、用windows身份驗證登錄
2、用sql server身份驗證登錄,默認的登錄名是sa,如果密碼忘記了可以用windows身份登錄后,進入
更改。安全性->登錄名->雙擊sa->設置密碼。
二、建立數據庫library
1、數據庫->新建數據庫
2、填寫數據庫名稱
三、為數據庫library建立基本表:學生表student、
圖書表book、借閱表borrow。並各導入一定的數據。
四、創建用戶。
這里為簡單起見,只創建兩個用戶——學生用戶(student_user)、管理員用戶(admin_user)。其中學
生用戶只能查閱(select),而管理員用戶可以查閱(select)、更新(update)、插入(insert)、刪除(delete)。
1、首先要創建登錄名,並未登錄名指定用戶
①學生用戶
[sql]
use library
go
create login stu with password='123';
use library
go
create user student_user for login stu;
②管理員用戶
[sql]
use library
go
create login stu with password='123';
use library
go
create user student_user for login stu;
2、創建角色並未角色授權
①學生角色
[sql]
create role student_role;
grant select on book to student_role;
grant select on borrow to student_role;
grant select on student to student_role;
②管理員角色
[sql]
create role admin_role;
grant select,update,delete,insert on book to admin_role;
grant select,update,delete,insert on borrow to admin_role;
grant select,update,delete,insert on student to admin_role;
3、將角色授予用戶。student_role授予student_user,admin_role授予admin_user。
①student_role授予sthdent_user
[sql]
exec sp_addrolemember
@rolename='student_role',
@membername='student_user';
②admin_role授予admin_user
[sql]
exec sp_addrolemember
@rolename='admin_role',
@membername='admin_user';
五、分別用stu和admin登錄,可以發現stu登錄后只能對基本表進行查詢操作,而admin登錄后除了可以
查詢外,還可以插入、刪除、更新。這樣就達到了博文開始時所述,不同權限的用戶進行不同的操作,從而使
得數據庫更加安全。
分類:
SQL Server 2008
