合肥工业大学—SQL Server数据库实验十:用户及其权限管理
生活随笔
收集整理的這篇文章主要介紹了
合肥工业大学—SQL Server数据库实验十:用户及其权限管理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用戶及其權限管理
- 1. 創建登錄名Mylog及密碼
- 2. 創建用戶user2關聯登錄名
- 3. 創建角色role1
- 4. 對用戶user2及角色role1授權
- 5. 驗證用戶授權
- 6. 收回用戶權限
1. 創建登錄名Mylog及密碼
create login Mylog with password='123456'
2. 創建用戶user2關聯登錄名
-- 創建一個EDUC數據庫用戶user2,使其關聯登錄名Mylog
create user user2 for login Mylog with default_schema = DBO
3. 創建角色role1
-- 創建一個EDUC數據庫角色role1
create role role1
4. 對用戶user2及角色role1授權
1. 對角色role1進行授權
-- 將創建基本表的權限授予role1
grant create table to role1-- 將查詢學生表的權限授予角色role1
grant select on student to role1-- 將插入選課表和修改成績的權限授予角色role1
grant insert, update(sc_grade) on select_course to role1
2. 對用戶user2進行授權
-- 將角色role1授予用戶user2(添加user2為角色role1的成員)
exec sp_addrolemember role1,user2
grant alter on schema::dbo to user2-- 將查詢、插入和刪除課程表的權限授予用戶user2
grant select,insert,delete on course to user2
5. 驗證用戶授權
1)選用SQL Server用戶身份驗證方式,以Mylog登錄名重新登錄。
2)將EDUC設置為當前數據庫
-- 將EDUC設置為當前數據庫
use EDUC
3) 創建一個基本表,結構由學生自行確定,檢驗該用戶是否具有創建基本表的權限
-- 創建一個基本表,結構由學生自行確定,檢驗該用戶是否具有創建基本表的權限
create table usr(id int primary key,name char(10)
)
報錯原因:從2005開始,用戶與架構分離,user2用戶沒有dbo架構的權限,授權時應該加
grant alter on schema::dbo to user2
4)查詢學生表,檢驗用戶是否已擁有查詢學生表的權限
-- 查詢學生表,檢驗用戶是否已擁有查詢學生表的權限
select * from student
5)向選課表中插入一個元組,檢驗用戶是否擁有該權限
-- 向選課表中插入一個元組,檢驗用戶是否擁有該權限
insert into select_course values(2018217876,80,096.5)
6)修改某學生、某門課的成績,檢驗用戶是否具有修改成績的權限
-- 修改某學生、某門課的成績,檢驗用戶是否具有修改成績的權限
update select_course set sc_grade = 100 where sc_num = 100
(7)操作課程表,檢驗用戶是否具有:查詢、插入和刪除的權限
-- 操作課程表,檢驗用戶是否具有:查詢、插入和刪除的權限
select * from course
insert into course values(92,'計算機導論',3,null);
drop table course
6. 收回用戶權限
1、收回角色role1查詢學生表的權限
以系統用戶的身份重新登錄
-- 收回角色role1查詢學生表的權限
revoke select on student from role1
2、收回用戶user1刪除課程表元組的權限
-- 收回用戶user1刪除課程表元組的權限
revoke delete on course from user1
3、驗證權限收回是否有效
首先重新登錄,以Mylog方式登錄,然后進行驗證
-- 驗證權限收回是否有效
select * from student
delete from course where cs_id = 100
總結
以上是生活随笔為你收集整理的合肥工业大学—SQL Server数据库实验十:用户及其权限管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 合肥工业大学—SQL Server数据库
- 下一篇: VS Code搭建C/C++开发环境超详