【SQL】基礎實驗7——SQLServer安全管理

 

一、實驗目的

1、掌握使用SQL Server Management Studio管理安全賬戶、使用T-SQL語句管理登錄賬戶

2、使用T-SQL語句管理數據庫用戶的權限

 

二、實驗內容、方法和步驟、實驗結果與分析【結果情況,碰到什麼問題,如何解決的?】

實驗內容:

(三)使用Transact-SQL命令管理數據庫用戶的權限完成以下各題功能,記錄或保存實現各功能的Transact-SQL命令。

 

在實現下列功能前需完成如下四條語句:

sp_addlogin 'log1','1'

/*創建新的SQL Server登陸,其登錄名爲‘log1’,密碼爲‘1’*/

sp_grantdbaccess 'log1'

/*將創建的數據庫用戶添加到當前數據庫中*/

sp_addlogin 'log2','1'/*同上*/

sp_grantdbaccess 'log2'

結果:

1.以sa的身份管理用戶log1:用GRANT語句授子用戶log1對錶Employes擁有select insert update權限,並允許用戶log1將該權限轉移給其他用戶。

方法:

use HrSystem

go

grant select,insert,update on Employees to log1 with grant option

go

步驟及結果:

分析:with grant option語句用於允許將權限轉移給其他用戶。


2.以log1的身份管理用戶log2:以log1的身份連接SQL Server服務器,將其對錶Employees擁有的select權限轉移給用log2。

方法:

use HrSystem

go

grant select on Employees to log2

go

步驟及結果:

分析:grant爲授予權限關鍵字,待授予的權限依次位於其後面,多個權限之間使用逗號隔開。


3.以sa的身份管理用戶log1:拒絕用戶log1對錶Employees的delete權限。

方法:

use HrSystem

go

deny delete on Employees to log1

go

步驟及結果:

分析:拒接用戶權限時,使用deny關鍵字。


4.以sa的身份管理用戶log1:拒絕用戶log1對錶Departments的列Dep_id的update權限。

方法:

use HrSystem

go

deny update(Dep_id)on Departments to log1 cascade

go

步驟及結果:

分析:拒絕用戶對錶的特定列的權限,可以將該列寫入對應權限的括號中。


5.以sa的身份管理用戶log2:授予用戶log2創建表的權限,拒絕其創建視圖的權限。

方法:

use HrSystem

go

grant create table to log2

deny create view to log2

go

步驟及結果:

分析:授予或拒絕用戶權限,都將該權限寫入授予或是拒絕關鍵字後。


6.以log2的身份連接服務器,分別執行創建表和創建視圖語句, 檢查第5題的權限管理的正確性。當執行創建視圖的語句時,給出的提示信息是什麼?

方法:

use HrSystem

go

/*創建表測試語句*/

create table Mytable

(one int primary key,

two char(10))

go

/*創建視圖測試語句*/

create view Myview

as

select * fromEmployees

go

步驟及結果:

分析:驗證某一用戶的權限時,要使用該用戶登陸,以其身份去操作。


7.以sa的身份管理用戶log2:廢除用戶log2的所有語句權限。

方法:

use HrSystem

go

revoke all fromlog2

go

步驟及結果:

分析:語句中all表示授予或是廢除所有的權限,這裏爲廢除。


8.以sa的身份管理用戶log1:廢除用戶log1對錶Employees的select權限。同時廢除log1授予log2的該權限(在第2題實現的授權)。

方法:

use HrSystem

go

revoke select on Employees from log1 cascade

go

步驟及結果:

分析:revoke用於廢除(收回)用戶權限,待收回權限應在revoke後聲明。

 

9.以sa的身份管理用戶log1:廢除用戶log1對錶Employees的所有權限(提示:需要分兩步完成)。

方法:

use HrSystem

go

/*第一步*/

revoke grant option for all on Employees from log1 cascade

go

/*第二步*/

revoke all onEmployees from log1

go

步驟及結果:

分析:revoke用於廢除(收回)用戶權限。

 

10.以sa的身份管理角色:用系統存儲過程在數據庫HrSystem中創建角色Myrole,並將log1和log2添加到該角色中。授予角色Myrole具有對錶Departments的查詢權限。

方法:

use HrSystem

go

exec sp_addrolemyrole

exec sp_addrolemembermyrole,log1

exec sp_addrolemembermyrole,log2

grant select on Departments to myrole

go

步驟及結果:

分析:一個角色代表單位中的一類工作人員,爲角色授予權限後,即可通過添加或者刪除成員來實現對用戶權限的管理。

 

三、實驗小結【對自己而言,通過實驗學到的關鍵技術方法】

1、SQL安全管理模型包括SQL Server登錄、數據庫用戶、權限和角色四個主要方面;

2、SQL權限分爲:對象權限、語句權限和暗示性權限(不必授予就有的)三種類型;

3、設置權限包括授予、拒絕和廢除權限三種,其中暗示性權限不需要設置;

4、SQL角色包括固定服務器和角色和數據庫角色,其中數據庫覺得又分爲固定數據庫角色和用戶自定義角色;

5、使用CREATE ROLE語句創建角色,後面參數依次爲‘角色名’WITH‘密碼’。

 

智者樂水,仁者樂山,幸福之人關注理工科日記

獲取原文文檔請關注“理工科日記”,回覆數據庫獲取。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章