首先我們得有一個數(shù)據(jù)庫,數(shù)據(jù)庫里有表
職工表:?部門表:
接下來的操作都是針對以上的表
其次我們來建立登錄用戶
create login 王明 with password='123456'--創(chuàng)建登錄用戶,
登錄名為王明,密碼為123456.
創(chuàng)建登錄名之后,登錄用戶還不能對數(shù)據(jù)庫進(jìn)行操作,還要對登錄用戶創(chuàng)建數(shù)據(jù)庫用戶
create user U1 for login 王明--創(chuàng)建數(shù)據(jù)庫用戶關(guān)聯(lián)登錄用戶
這時候登錄王明的賬戶,數(shù)據(jù)庫會自動映射到數(shù)據(jù)庫用戶U1,由U1來進(jìn)行對數(shù)據(jù)庫的操作。
不過,只創(chuàng)建了用戶,而用戶還沒有獲得對數(shù)據(jù)庫的操作權(quán)力,我們就要對數(shù)據(jù)庫用戶進(jìn)行權(quán)力分配
有時間的小伙伴可以額外花點(diǎn)時間點(diǎn)擊鏈接了解詳細(xì)
1)設(shè)置Sql server用戶對表、視圖、存儲過程、架構(gòu)的增刪改查權(quán)限
2)Schema是什么鬼?
3)什么是存儲過程?
4)sql server 微軟官方文檔
好了,接下來我們進(jìn)行用戶的權(quán)力分配
題1:用戶王明對兩個表有SELECT權(quán)利;
grant select --對于職工數(shù)據(jù)表
on worker
to U1
grant select --對于部門數(shù)據(jù)表
on deparyment
to U1
其中分配格式為 :
grant [權(quán)力] on [表名] to [用戶名]
這里要注意,權(quán)力可以多個,但在針對的表名只能一個
錯誤用例
--數(shù)據(jù)庫會報錯
grant select
on worker,deparyment
to U1
--不會報錯用例
grant select,update
on worker
to U1
題二:用戶劉星對職工表有SELECT權(quán)利,對工資字段具有更新權(quán)利;
grant select --查詢權(quán)力
on worker
to U3
grant update --字段更新權(quán)力
on worker(wages)
to U3
?對于某個字段的權(quán)力分配:
grant [權(quán)力名] on? [表名(字段名)]??to [用戶名]
題三:用戶張新具有修改這兩個表結(jié)構(gòu)的權(quán)利;
grant view definition
on worker
to U4
grant view definition
on deparyment
to U4
題四:用戶周平具有對兩個表所有權(quán)利,并具有給其他用戶授權(quán)的權(quán)利;
grant all
on worker
to U5
with grant option
授予用戶授權(quán)的方法,就是在授權(quán)語句后加上with grant option
用戶就在獲得權(quán)力的同時,也可將獲得的權(quán)力分配給其他用戶
題五:?用戶楊蘭具有從每個部門職工中SELECT最高工資、最低工資、平均工資的權(quán)利,他不能查看每個人的工資。
這個要注意,權(quán)力分配最小為 select等語句,不能在加入max、min等聚集函數(shù)
因此我們要曲線救國,創(chuàng)建一個存有最高,最低,平均工資的視圖,把select該視圖的權(quán)力分配給用戶楊蘭
go
create view Weges(max,min,avg) --創(chuàng)建視圖
as
select MAX(wages),MIN(wages),AVG(wages)
from worker
go
--分配權(quán)力
grant select
on Weges
to U6
我們已經(jīng)對用戶的權(quán)力進(jìn)行了分配,那么我們?nèi)绾问栈貦?quán)力呢?
題六:收回用戶王明對兩個表有SELECT權(quán)利;
revoke select
on worker
to U1
revoke select
on deparyment
to U1
對的,我們收回權(quán)力的格式與分配權(quán)力一樣 只是把grant 換成 revoke
revoke [權(quán)力] on [表名] to [用戶名]
要注意題四的權(quán)力收回
grant all --題四的權(quán)力分配
on worker
to U5
with grant option
revoke all --權(quán)力收回
on worker
to U5 CASCADE
細(xì)心的小伙伴發(fā)不同了嗎?
就是要在[用戶名] 后加上 CASCADE??
那為什么要加上CASCADE?呢?是因?yàn)槟闶栈氐腢5的權(quán)力但是沒有收回他可以給別人授權(quán)的權(quán)力哦文章來源:http://www.zghlxwxcb.cn/news/detail-439697.html
用戶權(quán)限回收問題文章來源地址http://www.zghlxwxcb.cn/news/detail-439697.html
到了這里,關(guān)于SQL Server 創(chuàng)建用戶,用戶授權(quán),實(shí)驗(yàn)報告的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!