全部產品
Search
文件中心

Data Lake Analytics - Deprecated:GRANT

更新時間:Jul 06, 2024

GRANT用於為資料庫帳號授權。

文法

GRANT privilege_type
ON privilege_level 
TO user[, …]

參數

  • privilege_type:權限類別型,取值為SELECTSHOWALTERDROPCREATEINSERTUPDATEDELETEGRANT OPTIONALLALL PRIVILEGESUSAGE

    • 可以用,將多個許可權串連在一起,例如:SELECT,DELETE,UPDATE,INSERT

    • ALLALL PRIVILEGES表示授予所有許可權,如果此時還有其他Privilege,則其他Privilege無效。但GRANT OPTION不包含在ALL中,必須顯式授權。

    • GRANT OPTIONDCL授權(GRANTREVOKE相關)。可以在Privilege中指定GRANT OPTION,也可以通過語句片段WITH GRANT OPTION來做GRANT授權。

    • SELECTSELECT授權。

    • SHOWSHOWUSE命令授權(與MySQL的邏輯差異比較大)。

    • ALTERALTER或其他變更型的DDL授權。

    • CREATECREATE型的DDL授權。

    • DROPDROP型的DDL授權。

    • INSERTINSERT型的DML授權。

    • UPDATEUPDATE型的DML授權。

    • DELETEDELETE型的DML授權。

    • USAGE表示為空白。

  • privilege_level:被授權對象層級,如果要查詢Schema層級許可權,則寫成schema_name.*;如果查詢表層級許可權,則寫成table_name

    • *表示當前串連使用了某個Schema,然後針對該Schema/DataBase授權,Schema/DataBase層級許可權。

    • *.* 表示所有庫的所有表授權,Global層級許可權。

    • xxDb.*表示針對Schema/DataBase這個庫做授權,庫層級許可權。

    • xxDb.yyTable表示針對Schema/DataBase的某個表做授權,表層級許可權。

    • yyTable表示當前串連使用了某個庫xxDB,針對xxDB庫的xxTable做授權,表層級許可權。

    • 暫時不支援欄位層級的授權。

  • user:被授權人

    • 只能由DLA的Root帳號給其他非Root帳號授權。

    • 暫時不支援非Root帳號給其他帳號授權。

    • 不支援跨雲帳號授權和撤銷許可權。

    • 只有相同雲帳號下的Root帳號才能通過SHOW GRANTS,查看其他帳號許可權。

樣本

  • dla_test帳號授予ots_account_test資料庫層級的all許可權:

      grant all on ots_account_test.* to dla_test;
  • dla_test帳號授予tpch Schemafinished_orders_v1視圖的SELECTSHOWDROPALTER許可權。

      grant select,show,drop,alter on tpch.finished_orders_v1 to dla_test;