精品国产亚洲一区二区三区,男女作爱在线观看免费网站,欧美的又大又长做禁片A片,97国产精品人妻无码久久久

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

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



    語(yǔ)法


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



    參數(shù)


    objectid



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



    column



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



    返回類型


    int



    注釋


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



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



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



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



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
































































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



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
































































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



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




























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



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



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



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



    示例


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


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



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


    B. 對(duì)對(duì)象權(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. 對(duì)可授予的權(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)文章
    本頁(yè)查看次數(shù):