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

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

    在安全系統(tǒng)中創(chuàng)建項(xiàng)目,使當(dāng)前數(shù)據(jù)庫中的用戶得以處理當(dāng)前數(shù)據(jù)庫中的數(shù)據(jù)或執(zhí)行特定的 Transact-SQL 語句。



    語法


    語句權(quán)限:



    GRANT { ALL | statement [ ,...n ] }

    TO security_account [ ,...n ]



    對象權(quán)限:



    GRANT

        { ALL [ PRIVILEGES ] | permission [ ,...n ] }

        {

            [ ( column [ ,...n ] ) ] ON { table | view
    }

            | ON { table | view } [ ( column [ ,...n ] ) ]

            | ON { stored_procedure | extended_procedure
    }

            | ON { user_defined_function }

        }

    TO security_account [ ,...n ]

    [ WITH GRANT OPTION ]

    [ AS { group | role
    } ]



    參數(shù)


    ALL



    表示授予所有可用的權(quán)限。對于語句權(quán)限,只有 sysadmin 角色成員可以使用 ALL。對于對象權(quán)限,sysadmin db_owner 角色成員和數(shù)據(jù)庫對象所有者都可以使用 ALL。



    statement



    是被授予權(quán)限的語句。語句列表可以包括:


    • CREATE DATABASE



    • CREATE DEFAULT



    • CREATE FUNCTION



    • CREATE PROCEDURE



    • CREATE RULE



    • CREATE TABLE



    • CREATE VIEW



    • BACKUP DATABASE



    • BACKUP LOG



    n



    一個(gè)占位符,表示此項(xiàng)可在逗號分隔的列表中重復(fù)。



    TO



    指定安全帳戶列表。



    security_account



    是權(quán)限將應(yīng)用的安全帳戶。安全帳戶可以是:


    • Microsoft® SQL Server™ 用戶。



    • SQL Server 角色。



    • Microsoft Windows NT® 用戶。



    • Windows NT 組。



    當(dāng)權(quán)限被授予一個(gè) SQL Server 用戶或 Windows NT 用戶帳戶,指定的 security_account 是權(quán)限能影響到的唯一帳戶。若權(quán)限被授予 SQL Server 角色或 Windows NT 組,權(quán)限可影響到當(dāng)前數(shù)據(jù)庫中該組或該角色成員的所有用戶。若組或角色和它們的成員之間存在權(quán)限沖突,最嚴(yán)格的權(quán)限 (DENY) 優(yōu)先起作用。security_account 必須在當(dāng)前數(shù)據(jù)庫中存在;不可將權(quán)限授予其它數(shù)據(jù)庫中的用戶、角色或組,除非已為該用戶在當(dāng)前數(shù)據(jù)庫中創(chuàng)建或給予了訪問權(quán)限。



    兩個(gè)特殊的安全帳戶可用于 GRANT 語句。授予 public 角色的權(quán)限可應(yīng)用于數(shù)據(jù)庫中的所有用戶。授予 guest 用戶的權(quán)限可為所有在數(shù)據(jù)庫中沒有用戶帳戶的用戶使用。



    當(dāng)授予某個(gè) Windows NT 本地組或全局組權(quán)限時(shí),請指定在其上定義該組的域名或計(jì)算機(jī)名,然后依次輸入反斜線和組名。但是,若要授予訪問 Windows NT 內(nèi)置本地組的權(quán)限,請指定 BUILTIN 而不是域名或計(jì)算機(jī)名。



    PRIVILEGES



    是可以包含在符合 SQL-92 標(biāo)準(zhǔn)的語句中的可選關(guān)鍵字。



    permission



    是當(dāng)前授予的對象權(quán)限。當(dāng)在表、表值函數(shù)或視圖上授予對象權(quán)限時(shí),權(quán)限列表可以包括這些權(quán)限中的一個(gè)或多個(gè):SELECT、INSERT、DELETE、REFENENCES 或 UPDATE。列列表可以與 SELECT 和 UPDATE 權(quán)限一起提供。如果列列表未與 SELECT 和 UPDATE 權(quán)限一起提供,那么該權(quán)限應(yīng)用于表、視圖或表值函數(shù)中的所有列。



    在存儲(chǔ)過程上授予的對象權(quán)限只可以包括 EXECUTE。在標(biāo)量值函數(shù)上授予的對象權(quán)限可以包括 EXECUTE 和 REFERENCES。



    為在 SELECT 語句中訪問某個(gè)列,該列上需要有 SELECT 權(quán)限。為使用 UPDATE 語句更新某個(gè)列,該列上需要有 UPDATE 權(quán)限。



    為創(chuàng)建引用某個(gè)表的 FOREIGN KEY 約束,該表上需要有 REFERENCES 權(quán)限。



    為使用引用某個(gè)對象的 WITH SCHEMABINDING 子句創(chuàng)建 FUNCTION 或 VIEW,該對象上需要有 REFERENCES 權(quán)限。



    column



    是當(dāng)前數(shù)據(jù)庫中授予權(quán)限的列名。



    table



    是當(dāng)前數(shù)據(jù)庫中授予權(quán)限的表名。



    view



    是當(dāng)前數(shù)據(jù)庫中被授予權(quán)限的視圖名。



    stored_procedure



    是當(dāng)前數(shù)據(jù)庫中授予權(quán)限的存儲(chǔ)過程名。



    extended_procedure



    是當(dāng)前數(shù)據(jù)庫中授予權(quán)限的擴(kuò)展存儲(chǔ)過程名。



    user_defined_function



    是當(dāng)前數(shù)據(jù)庫中授予權(quán)限的用戶定義函數(shù)名。



    WITH GRANT OPTION



    表示給予了 security_account 將指定的對象權(quán)限授予其它安全帳戶的能力。WITH GRANT OPTION 子句僅對對象權(quán)限有效。



    AS {group | role}



    指當(dāng)前數(shù)據(jù)庫中有執(zhí)行 GRANT 語句權(quán)力的安全帳戶的可選名。當(dāng)對象上的權(quán)限被授予一個(gè)組或角色時(shí)使用 AS,對象權(quán)限需要進(jìn)一步授予不是組或角色的成員的用戶。因?yàn)橹挥杏脩簦ǘ皇墙M或角色)可執(zhí)行 GRANT 語句,組或角色的特定成員授予組或角色權(quán)力之下的對象的權(quán)限。



    注釋


    不允許有跨數(shù)據(jù)庫權(quán)限;只能將當(dāng)前數(shù)據(jù)庫中的對象和語句的權(quán)限授予當(dāng)前數(shù)據(jù)庫中的用戶。如果用戶需要另一個(gè)數(shù)據(jù)庫中的對象的權(quán)限,請?jiān)谠摂?shù)據(jù)庫中創(chuàng)建用戶帳戶,或者授權(quán)用戶帳戶訪問該數(shù)據(jù)庫以及當(dāng)前數(shù)據(jù)庫。



    說明  系統(tǒng)存儲(chǔ)過程是例外,因?yàn)?EXECUTE 權(quán)限已經(jīng)授予 public 角色,允許任何人去執(zhí)行。但是在執(zhí)行系統(tǒng)存儲(chǔ)過程后,將檢查用戶的角色成員資格。如果此用戶不是運(yùn)行此存儲(chǔ)過程所需要的適當(dāng)?shù)墓潭ǚ?wù)器或數(shù)據(jù)庫角色的成員,則此存儲(chǔ)過程不會(huì)繼續(xù)執(zhí)行。



    REVOKE 語句可用于刪除已授予的權(quán)限,DENY 語句可用于防止用戶通過 GRANT 語句獲得權(quán)限給他們的用戶帳戶。



    授予權(quán)限刪除所授予級別(用戶、組或角色)上的已拒絕權(quán)限或已廢除權(quán)限。在另一級別(諸如包含此用戶的組或角色)上被拒絕的同一權(quán)限優(yōu)先起作用。但是,雖然在另一級別上所廢除的同一權(quán)限仍然適用,但它并不阻止用戶訪問該對象。



    如果用戶激活應(yīng)用程序角色,對此用戶通過該應(yīng)用程序角色訪問的任何對象,GRANT 的作用為空。因此,盡管一個(gè)用戶可能被授予了對當(dāng)前數(shù)據(jù)庫中的指定對象的訪問權(quán)限,但是如果此用戶使用對此對象無訪問權(quán)限的應(yīng)用程序角色,則在應(yīng)用程序角色激活期間,此用戶也沒有此對象的訪問權(quán)限。



    sp_helprotect 系統(tǒng)存儲(chǔ)過程報(bào)告在數(shù)據(jù)庫對象或用戶上的權(quán)限。



    權(quán)限


    GRANT 權(quán)限依賴于所授予的語句權(quán)限和權(quán)限中涉及的對象。sysadmin 角色中的成員可在任何數(shù)據(jù)庫中授予任何權(quán)限。對象所有者可為他們所擁有的對象授予權(quán)限。db_ownerdb_securityadmin 角色的成員可授予其數(shù)據(jù)庫中任何語句或?qū)ο笊系娜魏螜?quán)限。



    需要權(quán)限的語句是那些在數(shù)據(jù)庫中增加對象,或?qū)?shù)據(jù)庫執(zhí)行管理活動(dòng)的語句。每條需要權(quán)限的語句都有一個(gè)特定的角色集,自動(dòng)有權(quán)限執(zhí)行此語句。例如,sysadmin、db_ownerdb_ddladmin 角色的成員默認(rèn)有CREATE TABLE 權(quán)限。sysadmin db_owner 角色以及表的所有者默認(rèn)有對表執(zhí)行 SELECT 語句的權(quán)限。



    有一些 Transact-SQL 語句不能被授予權(quán)限;執(zhí)行這些語句要求有固定角色中的成員資格,此角色有默示執(zhí)行特殊語句的權(quán)限。例如,若要執(zhí)行 SHUTDOWN 語句,用戶必須添加為 serveradmin 角色中的成員。



    dbcreator、processadmin、securityadminserveradmin 固定服務(wù)器角色的成員僅有權(quán)執(zhí)行以下 Transact-SQL 語句。
















































































































    語句dbcreatorprocessadminsecurityadminserveradminbulkadmin
    ALTER DATABASEX
    CREATE DATABASEX
    BULK INSERT X
    DBCC X (1)
    DENY X (2)
    GRANT X (2)
    KILL X
    RECONFIGURE X
    RESTOREX
    REVOKE X (2)
    SHUTDOWN X



    (1) 有關(guān)更多信息,請參見 DBCC 語句。

    (2) 僅適用于 CREATE DATABASE 語句。



    說明  diskadminsetupadmin 固定服務(wù)器角色的成員沒有權(quán)限執(zhí)行任何 Transact-SQL 語句,他們只能執(zhí)行特定的系統(tǒng)存儲(chǔ)過程。但是,sysadmin 固定服務(wù)器角色的成員有權(quán)限執(zhí)行所有的 Transact-SQL 語句。



    下面的固定數(shù)據(jù)庫角色的成員有權(quán)限執(zhí)行指定的 Transact-SQL 語句。


































































































































































































































































































































































































    語句


    db_owner


    db_datareader


    db_datawriter


    db_ddladmin
    db_backupoperatordb_securityadmin
    ALTER DATABASEX X
    ALTER FUNCTIONX X
    ALTER PROCEDUREX X
    ALTER TABLEX (1) X
    ALTER TRIGGERX X
    ALTER VIEWX (1) X
    BACKUPX X
    CHECKPOINTX X
    CREATE DEFAULTX X
    CREATE FUNCTIONX X
    CREATE INDEXX (1) X
    CREATE PROCEDUREX X
    CREATE RULEX X
    CREATE TABLEX X
    CREATE TRIGGERX (1) X
    CREATE VIEWX    X
    DBCCX X (2)
    DELETEX (1) X
    DENYX X
    DENY on objectX
    DROPX (1) X
    EXECUTEX (1)
    GRANTX X
    GRANT on objectX (1)
    INSERTX (1) X
    READTEXTX (1) X
    REFERENCESX (1) X
    RESTOREX
    REVOKEX X
    REVOKE on objectX (1)
    SELECTX (1) X
    SETUSERX
    TRUNCATE TABLEX (1) X
    UPDATEX (1) X
    UPDATE STATISTICSX (1)
    UPDATETEXTX (1) X
    WRITETEXTX (1) X



    (1) 權(quán)限也適用于對象所有者。

    (2) 有關(guān)更多信息,請參見 DBCC 語句。



    說明  db_accessadmin 固定數(shù)據(jù)庫角色的成員沒有執(zhí)行任何 Transact-SQL 語句的權(quán)限,只可執(zhí)行特定的系統(tǒng)存儲(chǔ)過程。



    不需要權(quán)限即可執(zhí)行的 Transact-SQL 語句有(已自動(dòng)授予 public):
























    BEGIN TRANSACTIONCOMMIT TRANSACTION
    PRINTRAISERROR
    ROLLBACK TRANSACTIONSAVE TRANSACTION
    SET 



    有關(guān)執(zhí)行系統(tǒng)存儲(chǔ)過程所需權(quán)限的更多信息,請參見相應(yīng)的系統(tǒng)存儲(chǔ)過程。



    示例


    A. 授予語句權(quán)限


    下面的示例給用戶 MaryJohn 以及 Windows NT 組 Corporate\BobJ 授予多個(gè)語句權(quán)限。



    GRANT CREATE DATABASE, CREATE TABLE
    TO Mary, John, [Corporate\BobJ]


    B. 在權(quán)限層次中授予對象權(quán)限


    下例顯示權(quán)限的優(yōu)先順序。首先,給 public 角色授予 SELECT 權(quán)限。然后,將特定的權(quán)限授予用戶 Mary、John Tom。于是這些用戶就有了對 authors 表的所有權(quán)限。



    USE pubs
    GO

    GRANT SELECT
    ON authors
    TO public
    GO

    GRANT INSERT, UPDATE, DELETE
    ON authors
    TO Mary, John, Tom
    GO


    C. 給 SQL Server 角色授予權(quán)限


    下面的示例將 CREATE TABLE 權(quán)限授予 Accounting 角色的所有成員。



    GRANT CREATE TABLE TO Accounting


    D. 用 AS 選項(xiàng)授予權(quán)限


    用戶 Jean 擁有表 Plan_DataJean 將表 Plan_Data 的 SELECT 權(quán)限授予 Accounting 角色(指定 WITH GRANT OPTION 子句)。用戶 JillAccounting 的成員,他要將表 Plan_Data 上的 SELECT 權(quán)限授予用戶 Jack,Jack 不是 Accounting 的成員。



    因?yàn)閷Ρ?Plan_Data 用 GRANT 語句授予其他用戶 SELECT 權(quán)限的權(quán)限是授予 Accounting 角色而不是顯式地授予 Jill,不能因?yàn)橐咽谟?Accounting 角色中成員該權(quán)限,而使 Jill 能夠授予表的權(quán)限。Jill 必須用 AS 子句來獲得 Accounting 角色的授予權(quán)限。



    /* User Jean */
    GRANT SELECT ON Plan_Data TO Accounting WITH GRANT OPTION

    /* User Jill */
    GRANT SELECT ON Plan_Data TO Jack AS Accounting
    相關(guān)文章
    本頁查看次數(shù):