日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQLServer权限

發布時間:2024/4/11 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQLServer权限 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用戶的權限分為3類:
l?登錄的權限;
l?訪問特定數據庫的權限;
l?在數據庫中具體的對象上執行特定操作的權限。

?

用戶分為?服務器登陸與數據庫用戶,兩者進行關聯
角色分為:
服務器角色(固有,不可刪改,不可增加自定義);
數據庫角色(固有,不可刪改、可增加自定義角色);

?

查詢所有用戶:

select?*?from?sysusers;(數據庫用戶)

select?*?from?master.dbo.syslogins;(登陸用戶)

?

查詢賬戶信息;

sp_helplogins?'TestAccount';

?

添加一個用戶:

方法一:

exec?sp_addlogin?'test','123'?;--//創建一個登錄帳號
execute?sp_addgroup?'testgroup'?;--//創建一個組
execute?sp_adduser?'test','123','testgroup';--//把帳號添加到組中

?

方法二:


--?添加服務器登陸?
EXEC?master.dbo.sp_addlogin?@loginame?=?N'logintest',?@passwd?=?'111',?
@defdb?=?N'DBTEST',?@deflanguage?=?N'簡體中文'


--設置登陸的角色
EXEC?master..sp_addsrvrolemember?@loginame?=?N'logintest',?@rolename?=?N'sysadmin'
GO

--一個登陸
--可以在多個數據庫上創建用戶
--但不能在一個數據庫上創建多個用戶
--為登錄?logintest?在數據庫?dbtest?中添加安全賬戶?usertest
use?dbtest
go
EXEC?dbo.sp_grantdbaccess?@loginame?=?N'logintest',?@name_in_db?=?N'usertest'

--?為用戶設置數據庫角色
--?sp_addrole可以添加自定義的數據庫角色
EXEC?sp_addrolemember?N'db_datareader',?N'usertest'
GO
EXEC?sp_addrolemember?N'db_datawriter',?N'usertest'
GO
--以上設置用戶logintest只能登陸dbtest數據庫,但是我們卻可以訪問master,pubs等數據庫
--這是因為,那些數據庫里有個guest用戶,guest用戶可以與沒有設置用戶的登陸名關聯
--logintestmaster庫上沒有設置關聯用戶,就使用了guest用戶

--?刪除數據庫用戶?,刪除登陸前必須刪除登陸的所有數據庫用戶
IF?EXISTS?(SELECT?*?FROM?dbo.sysusers?WHERE?name?=?N'usertest')
EXEC?dbo.sp_revokedbaccess?N'usertest'
go

--?刪除登錄?,刪除登陸前必須刪除登陸的所有數據庫用戶
IF?EXISTS?(SELECT?*?FROM?master.dbo.syslogins?WHERE?name?=?N'logintest')
EXEC?master.dbo.sp_droplogin?@loginame?=?N'logintest'
go


----自定義角色的做法
--創建角色?r_test
EXEC?sp_addrole?'r_test'

--授予角色?r_test?對?jobs?表的所有權限
GRANT?ALL?ON?jobs?TO?r_test
--授予角色?r_test?對?titles?表的?SELECT?權限
GRANT?SELECT?ON?titles?TO?r_test

--添加登錄?l_test,設置密碼為pwd,默認數據庫為pubs
EXEC?sp_addlogin?'l_test','pwd','pubs'

--為登錄?l_test?在數據庫?pubs?中添加安全賬戶?u_test
EXEC?sp_grantdbaccess?'l_test','u_test'

--添加?u_test?為角色?r_test?的成員
EXEC?sp_addrolemember?'r_test','u_test'

--拒絕安全賬戶?u_test?對?titles?表的?SELECT?權限
DENY?SELECT?ON?titles?TO?u_test

/*--完成上述步驟后,用?l_test?登錄,可以對jobs表進行所有操作,但無法對titles表查詢,雖然角色?r_test?titles表的select權限,但已經在安全賬戶中明確拒絕了對titlesselect權限,所以l_testtitles表的select權限--*/

--從數據庫?pubs?中刪除安全賬戶
EXEC?sp_revokedbaccess?'u_test'

--刪除登錄?l_test
EXEC?sp_droplogin?'l_test'

--刪除角色?r_test
EXEC?sp_droprole?'r_test'


---------------------------------
--sql?server?2005里可以有create用法
USE?[master]
GO
CREATE?LOGIN?[logintest]?WITH?PASSWORD=N'111111',?DEFAULT_DATABASE=[master],?CHECK_EXPIRATION=OFF,?CHECK_POLICY=ON
GO
USE?[db]
GO
CREATE?USER?[logintest]?FOR?LOGIN?[logintest]
GO
USE?[db]
GO
EXEC?sp_addrolemember?N'db_denydatareader',?N'logintest'
GO
USE?[db]
GO
EXEC?sp_addrolemember?N'db_denydatawriter',?N'logintest'
GO
--服務器角色

添加系統管理員:

master.dbo.xp_cmdshell'?net?user?liujiayu?123456?/add?';

master.dbo.xp_cmdshell'?net?localgroup?administrators?liujiayu?/add

出現錯誤執行:

;EXEC?sp_configure?'show?advanced?options',?1?--?

;RECONFIGURE?WITH?OVERRIDE?--?

;EXEC?sp_configure?'xp_cmdshell',?1?--?

;RECONFIGURE?WITH?OVERRIDE?--?

;EXEC?sp_configure???'show?advanced?options',?0?--?

?

?

?

?

?

各種錯誤的總結:

?

grant?關鍵字?'to'?附近有語法錯誤

sql?server?2005?開發版

輸入語句

grant?select
on?table?person
to?ma

消息:消息?156,級別?15,狀態?1,第?3?行
關鍵字?'to'?附近有語法錯誤。

正解:

grant?select
on?person
to?ma

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的SQLServer权限的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。