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

歡迎訪問 生活随笔!

生活随笔

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

数据库

图解SQL Server 安全函数的使用

發布時間:2025/4/14 数据库 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图解SQL Server 安全函数的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 操作實例

我自己電腦上Sql Server的安全函數如下;

?

返回調用方對服務器的有效權限的列表;

?

返回調用方對OA_DB 數據庫的有效權限的列表;

?

返回調用方對OA_DB 數據庫內存儲過程usersUpdate的有效權限的列表;

?

列出另一個用戶的有效權限

當前用戶是sa,沒有別的用戶,以sa來示例;
返回數據庫用戶 sa 對 OA_DB 數據庫內 bbs 表的有效權限的列表。 調用方需要對用戶 sa 具有 IMPERSONATE 權限。

出錯;改為對用戶dbo則可;

?

可以是另一個用戶;

?

檢查當前用戶是否為數據庫角色或 Windows 域組的成員;

?

確定當前用戶能否執行 CREATE TABLE 語句;

?

返回 用戶 dbo 的標識號;

?

找到默認跟蹤的文件路徑;

?

二 實例代碼

?

SELECT * FROM fn_my_permissions(NULL, 'SERVER');GOUSE OA_DB SELECT * FROM fn_my_permissions (NULL, 'DATABASE'); GO USE OA_DB SELECT * FROM fn_my_permissions('usersUpdate', 'OBJECT') ORDER BY subentity_name, permission_name ; GO EXECUTE AS USER = 'sa'; SELECT * FROM fn_my_permissions('bbs', 'OBJECT') ORDER BY subentity_name, permission_name ; REVERT; GO SELECT * FROM fn_my_permissions('Shipping47', 'CERTIFICATE'); GOUSE AdventureWorks2012; SELECT * FROM fn_my_permissions('ProductDescriptionSchemaCollection', 'XML SCHEMA COLLECTION'); GO --返回調用方對當前數據庫中用戶 MalikAr 的有效權限的列表。 SELECT * FROM fn_my_permissions('MalikAr', 'USER'); GO --列出另一個登錄名的有效權限 EXECUTE AS LOGIN = 'WanidaBenshoof'; SELECT * FROM fn_my_permissions('AdventureWorks2012.HumanResources.Employee', 'OBJECT') ORDER BY subentity_name, permission_name ; REVERT; GO -- Test membership in db_owner and print appropriate message. IF IS_MEMBER ('db_owner') = 1 PRINT 'Current user is a member of the db_owner role' ELSE IF IS_MEMBER ('db_owner') = 0 PRINT 'Current user is NOT a member of the db_owner role' ELSE IF IS_MEMBER ('db_owner') IS NULL PRINT 'ERROR: Invalid group / role specified'; GO -- Execute SELECT if user is a member of ADVWORKS\Shipping. IF IS_MEMBER ('ADVWORKS\Shipping') = 1 SELECT 'User ' + USER + ' is a member of ADVWORKS\Shipping.'; GO IF PERMISSIONS()&2=2 CREATE TABLE test_table (col1 INT) ELSE PRINT 'ERROR: The current user cannot create a table.'; IF PERMISSIONS(OBJECT_ID('AdventureWorks2012.Person.Address','U'))&8=8 PRINT 'The current user can insert data into Person.Address.' ELSE PRINT 'ERROR: The current user cannot insert data into Person.Address.'; --對可授予的權限使用 PERMISSIONS 函數 IF PERMISSIONS(OBJECT_ID('AdventureWorks2012.Person.Address','U'))&0x80000=0x80000 PRINT 'INSERT on Person.Address is grantable.' ELSE PRINT 'You may not GRANT INSERT permissions on Person.Address.'; USE OA_DB; SELECT USER_ID('dbo');GO select * from ::fn_trace_getinfo(0)

?

?

?

三 參考資料

https://msdn.microsoft.com/zh-cn/LIBRARY/ms186236.aspx 安全函數 (Transact-SQL) http://www.cnblogs.com/zhijianliutang/p/4113911.html SQL Server中關于跟蹤(Trace)那點事 https://msdn.microsoft.com/en-us/library/ms173875.aspx sys.fn_trace_getinfo (Transact-SQL) http://www.codes51.com/article/detail_94669.html SQL Server中的跟蹤(Trace)介紹

?

?

?

總結

以上是生活随笔為你收集整理的图解SQL Server 安全函数的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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