中文字幕天天躁日日躁狠狠躁,最近中文字幕大全免费版在线,最近2019免费中文字幕视频三,亚洲精品无码你懂的,亚洲国产精品成人精品小说

  • 相關(guān)軟件
    >PERMISSIONS 創(chuàng)建者:webmaster 更新時間:2006-02-16 15:51

    返回一個包含位圖的值,表明當(dāng)前用戶的語句、對象或列權(quán)限。



    語法


    PERMISSIONS ( [ objectid [ , 'column' ] ] )



    參數(shù)


    objectid



    對象的 ID。如果未指定 objectid,則位圖值包含當(dāng)前用戶的語法權(quán)限;否則,位圖包含當(dāng)前用戶在該對象 ID 上的對象權(quán)限。指定的對象必須在當(dāng)前數(shù)據(jù)庫中。將 OBJECT_ID 函數(shù)用于對象名以確定 objectid 值。



    column



    返回其權(quán)限信息的列的可選名。該列必須是 objectid 所指定表中的有效列名。



    返回類型


    int



    注釋


    可使用 PERMISSIONS 確定當(dāng)前用戶是否有執(zhí)行某個語句所需的權(quán)限,或者是否有將某個對象上的權(quán)限授予另一用戶所需的權(quán)限。



    所返回的權(quán)限信息是 32 位位圖。



    低 16 位反映對當(dāng)前用戶的安全帳戶所授予的權(quán)限,以及應(yīng)用于當(dāng)前用戶所在的 Microsoft® Windows NT® 組或 Microsoft SQL Server™ 角色的權(quán)限。例如,當(dāng)沒有指定 objectid 時,將返回值 66(十六進制值 0x42),表示當(dāng)前用戶有執(zhí)行 CREATE TABLE(十進制值 2)和 BACKUP DATABASE(十進制值 64)語句的權(quán)限。



    高 16 位反映當(dāng)前用戶可以授予其他用戶的權(quán)限。除左移 16 位(與 65536 相乘)之外,高 16 位的解釋方式與下表中所介紹的低 16 位的解釋方式完全相同。例如,位 0x8(十進制值 8)說明當(dāng)指定 objectid 時的 INSERT 權(quán)限。而 0x80000(十進制值 524288)說明 GRANT INSERT 權(quán)限的能力,這是因為 524288 = 8 x 65536。由于角色中的成員資格,該用戶可能沒有執(zhí)行語句的權(quán)限,但仍然能夠?qū)⒃摍?quán)限授予他人。



    下表顯示語句權(quán)限所使用的位(未指定 objectid)。
































































    位(十進制)位(十六進制)語句權(quán)限
    10x1CREATE DATABASE(僅限于 master 數(shù)據(jù)庫)
    20x2CREATE TABLE
    40x4CREATE PROCEDURE
    80x8CREATE VIEW
    160x10CREATE RULE
    320x20CREATE DEFAULT
    640x40BACKUP DATABASE
    1280x80BACKUP LOG
    2560x100保留



    下表顯示當(dāng)僅指定 objectid 時,返回的對象權(quán)限所使用的位。
































































    位(十進制)位(十六進制)語句權(quán)限
    10x1SELECT ALL
    20x2UPDATE ALL
    40x4REFERENCES ALL
    80x8INSERT
    160x10DELETE
    320x20EXECUTE(僅限于過程)
    40960x1000SELECT ANY(至少一列)
    81920x2000UPDATE ANY
    163840x4000REFERENCES ANY



    下表顯示當(dāng)同時指定 objectidcolumn 時,返回的列級對象權(quán)限所使用的位。




























    位(十進制)位(十六進制)語句權(quán)限
    10x1SELECT
    20x2UPDATE
    40x4REFERENCES



    如果指定的參數(shù)為 NULL 值或無效(例如,objectidcolumn 不存在),則返回 NULL 值。沒有定義不適用的權(quán)限所使用的位值(例如,表的 EXECUTE 權(quán)限、位 0x20)。



    使用按位 AND (&) 運算符確定 PERMISSIONS 函數(shù)返回的位圖中的每個位集。



    還可使用 sp_helprotect 系統(tǒng)存儲過程返回某位用戶在當(dāng)前數(shù)據(jù)庫中的對象權(quán)限列表。



    示例


    A. 對語句權(quán)限使用 PERMISSIONS 函數(shù)


    本示例確定當(dāng)前用戶是否能夠執(zhí)行 CREATE TABLE 語句。



    IF PERMISSIONS()&2=2
      CREATE TABLE test_table (col1 INT)
    ELSE
      PRINT 'ERROR: The current user cannot create a table.'


    B. 對對象權(quán)限使用 PERMISSIONS 函數(shù)


    本示例確定當(dāng)前用戶是否能夠在 authors 表中插入數(shù)據(jù)行。



    IF PERMISSIONS(OBJECT_ID('authors'))&8=8 
      PRINT 'The current user can insert data into authors.'
    ELSE
      PRINT 'ERROR: The current user cannot insert data into authors.'


    C. 對可授予的權(quán)限使用 PERMISSIONS 函數(shù)


    本示例確定當(dāng)前用戶是否能夠?qū)?authors 表中的 INSERT 權(quán)限授予另一用戶。



    IF PERMISSIONS(OBJECT_ID('authors'))&0x80000=0x80000
      PRINT 'INSERT on authors is grantable.'
    ELSE
      PRINT 'You may not GRANT INSERT permissions on authors.'
    相關(guān)文章
    本頁查看次數(shù):