- يمنح الامتيازات لحسابات مستخدمي ClickHouse أو للأدوار.
- يسند الأدوار إلى حسابات المستخدمين أو إلى أدوار أخرى.
لإلغاء الامتيازات، استخدم عبارة REVOKE. ويمكنك أيضًا عرض الامتيازات الممنوحة باستخدام عبارة SHOW GRANTS.
صيغة منح الامتيازات
GRANT [ON CLUSTER cluster_name] privilege[(column_name [,...])] [,...] ON {db.table[*]|db[*].*|*.*|table[*]|*} TO {user | role | CURRENT_USER} [,...] [WITH GRANT OPTION] [WITH REPLACE OPTION]privilege— نوع الامتياز.role— دور مستخدم ClickHouse.user— حساب مستخدم ClickHouse.
تمنح العبارة WITH GRANT OPTION المستخدم user أو الدور role صلاحية تنفيذ الاستعلام GRANT. ويمكن للمستخدمين منح امتيازات ضمن النطاق نفسه الذي لديهم أو ضمن نطاق أضيق.
تستبدل العبارة WITH REPLACE OPTION الامتيازات القديمة بامتيازات جديدة للمستخدم user أو الدور role، وإذا لم تُحدَّد، فإنها تضيف الامتيازات.
صيغة إسناد الدور
GRANT [ON CLUSTER cluster_name] role [,...] TO {user | another_role | CURRENT_USER} [,...] [WITH ADMIN OPTION] [WITH REPLACE OPTION]role— دور في ClickHouse.user— حساب مستخدم ClickHouse.
يمنح البند WITH ADMIN OPTION امتياز ADMIN OPTION إلى user أو role.
ويستبدل البند WITH REPLACE OPTION الأدوار القديمة بدور جديد لـ user أو role، وإذا لم يُحدَّد، فإنه يُضيف الأدوار.
صيغة GRANT CURRENT GRANTS
GRANT CURRENT GRANTS{(privilege[(column_name [,...])] [,...] ON {db.table|db.*|*.*|table|*}) | ON {db.table|db.*|*.*|table|*}} TO {user | role | CURRENT_USER} [,...] [WITH GRANT OPTION] [WITH REPLACE OPTION]privilege— نوع الامتياز.role— دور مستخدم في ClickHouse.user— حساب مستخدم في ClickHouse.
يتيح لك استخدام عبارة CURRENT GRANTS منح جميع الامتيازات المحددة للمستخدم أو الدور المحدَّد.
إذا لم يُحدَّد أي امتياز، فسيحصل المستخدم أو الدور المحدَّد على جميع الامتيازات المتاحة لـ CURRENT_USER.
الاستخدام
لاستخدام GRANT، يجب أن يمتلك حسابك امتياز GRANT OPTION. ولا يمكنك منح الامتيازات إلا ضمن حدود الامتيازات الممنوحة لحسابك.
على سبيل المثال، منح المسؤول امتيازات للحساب john عبر الاستعلام التالي:
GRANT SELECT(x,y) ON db.table TO john WITH GRANT OPTIONهذا يعني أن john لديه الإذن بتنفيذ:
SELECT x,y FROM db.table.SELECT x FROM db.table.SELECT y FROM db.table.
لا يمكن لـ john تنفيذ SELECT z FROM db.table. كما أن SELECT * FROM db.table غير متاح أيضًا. عند معالجة هذا الاستعلام، لا يعيد ClickHouse أي بيانات، حتى للعمودين x و y. والاستثناء الوحيد هو إذا كان الجدول يحتوي فقط على العمودين x و y. في هذه الحالة يعيد ClickHouse جميع البيانات.
ويمتلك john أيضًا امتياز GRANT OPTION، لذلك يمكنه منح مستخدمين آخرين امتيازات بالنطاق نفسه أو بنطاق أضيق.
يُسمح دائمًا بالوصول إلى قاعدة البيانات system (لأن هذه القاعدة تُستخدم لمعالجة الاستعلامات).
يمكنك منح امتيازات متعددة لعدة حسابات في استعلام واحد. ويتيح الاستعلام GRANT SELECT, INSERT ON *.* TO john, robin للحسابين john و robin تنفيذ استعلامَي INSERT و SELECT على جميع الجداول في جميع قواعد البيانات على الخادم.
منح الامتيازات باستخدام أحرف البدل
عند تحديد الامتيازات، يمكنك استخدام علامة النجمة (*) بدلًا من اسم جدول أو قاعدة بيانات. على سبيل المثال، يتيح الاستعلام GRANT SELECT ON db.* TO john للمستخدم john تنفيذ الاستعلام SELECT على جميع الجداول في قاعدة البيانات db.
كما يمكنك حذف اسم قاعدة البيانات. في هذه الحالة، تُمنح الامتيازات لقاعدة البيانات الحالية.
على سبيل المثال، يمنح GRANT SELECT ON * TO john الامتياز على جميع الجداول في قاعدة البيانات الحالية، بينما يمنح GRANT SELECT ON mytable TO john الامتياز على الجدول mytable في قاعدة البيانات الحالية.
يمكنك أيضًا وضع علامة النجمة في نهاية اسم جدول أو قاعدة بيانات. تتيح هذه الميزة منح الامتيازات على بادئة عامة لمسار الجدول.
مثال: GRANT SELECT ON db.my_tables* TO john. يتيح هذا الاستعلام للمستخدم john تنفيذ الاستعلام SELECT على جميع جداول قاعدة البيانات db التي تطابق البادئة my_tables*.
المزيد من الأمثلة:
GRANT SELECT ON db.my_tables* TO john
SELECT * FROM db.my_tables -- granted
SELECT * FROM db.my_tables_0 -- granted
SELECT * FROM db.my_tables_1 -- granted
SELECT * FROM db.other_table -- not_granted
SELECT * FROM db2.my_tables -- not_grantedGRANT SELECT ON db*.* TO john
SELECT * FROM db.my_tables -- granted
SELECT * FROM db.my_tables_0 -- granted
SELECT * FROM db.my_tables_1 -- granted
SELECT * FROM db.other_table -- granted
SELECT * FROM db2.my_tables -- grantedستَرِث جميع الجداول المُنشأة حديثًا ضمن المسارات الممنوحة تلقائيًا جميع الامتيازات من المسارات الأصلية التابعة لها.
على سبيل المثال، إذا شغّلت الاستعلام GRANT SELECT ON db.* TO john ثم أنشأت جدولًا جديدًا db.new_table، فسيتمكن المستخدم john من تشغيل الاستعلام SELECT * FROM db.new_table.
يمكنك تحديد النجمة فقط للبادئات:
GRANT SELECT ON db.* TO john -- correct
GRANT SELECT ON db*.* TO john -- correct
GRANT SELECT ON *.my_table TO john -- wrong
GRANT SELECT ON foo*bar TO john -- wrong
GRANT SELECT ON *suffix TO john -- wrong
GRANT SELECT(foo) ON db.table* TO john -- wrongالامتيازات
الامتياز هو صلاحية تُمنَح لمستخدم لتنفيذ أنواع محددة من الاستعلامات.
للامتيازات هيكل هرمي، وتعتمد مجموعة الاستعلامات المسموح بها على نطاق الامتياز.
يظهر أدناه التسلسل الهرمي للامتيازات في ClickHouse:
ALLإدارة الوصولALLOW SQL SECURITY NONEALTER QUOTAALTER ROLEALTER ROW POLICYALTER SETTINGS PROFILEALTER USERCREATE QUOTACREATE ROLECREATE ROW POLICYCREATE SETTINGS PROFILECREATE USERDROP QUOTADROP ROLEDROP ROW POLICYDROP SETTINGS PROFILEDROP USERROLE ADMINSHOW ACCESSSHOW QUOTASSHOW ROLESSHOW ROW POLICIESSHOW SETTINGS PROFILESSHOW USERS
ALTERALTER DATABASEALTER DATABASE SETTINGS
ALTER TABLEALTER COLUMNALTER ADD COLUMNALTER CLEAR COLUMNALTER COMMENT COLUMNALTER DROP COLUMNALTER MATERIALIZE COLUMNALTER MODIFY COLUMNALTER RENAME COLUMN
ALTER CONSTRAINTALTER ADD CONSTRAINTALTER DROP CONSTRAINTALTER MODIFY CONSTRAINT
ALTER DELETEALTER FETCH PARTITIONALTER FREEZE PARTITIONALTER INDEXALTER ADD INDEXALTER CLEAR INDEXALTER DROP INDEXALTER MATERIALIZE INDEXALTER ORDER BYALTER SAMPLE BY
ALTER MATERIALIZE TTLALTER MODIFY COMMENTALTER MOVE PARTITIONALTER PROJECTIONALTER SETTINGSALTER STATISTICSALTER ADD STATISTICSALTER DROP STATISTICSALTER MATERIALIZE STATISTICSALTER MODIFY STATISTICS
ALTER TTLALTER UPDATEALTER TABLE EXECUTE
ALTER VIEWALTER VIEW MODIFY QUERYALTER VIEW REFRESHALTER VIEW MODIFY SQL SECURITY
BACKUPCLUSTERCREATECREATE ARBITRARY TEMPORARY TABLECREATE TEMPORARY TABLE
CREATE DATABASECREATE DICTIONARYCREATE FUNCTIONCREATE RESOURCECREATE TABLECREATE VIEWCREATE WORKLOAD
dictGetdisplaySecretsInShowAndSelectDROPDROP DATABASEDROP DICTIONARYDROP FUNCTIONDROP RESOURCEDROP TABLEDROP VIEWDROP WORKLOAD
INSERTINTROSPECTIONaddressToLineaddressToLineWithInlinesaddressToSymboldemangle
KILL QUERYKILL TRANSACTIONMOVE PARTITION BETWEEN SHARDSNAMED COLLECTION ADMINALTER NAMED COLLECTIONCREATE NAMED COLLECTIONDROP NAMED COLLECTIONNAMED COLLECTIONSHOW NAMED COLLECTIONSSHOW NAMED COLLECTIONS SECRETS
OPTIMIZESELECTSET DEFINERSHOWSHOW COLUMNSSHOW DATABASESSHOW DICTIONARIESSHOW TABLES
SHOW FILESYSTEM CACHESالمصادرAZUREBIGQUERYFILEHDFSHIVEJDBCKAFKAMONGOMYSQLNATSODBCPOSTGRESRABBITMQREDISREMOTES3SQLITEURL
SYSTEMSYSTEM BACKGROUNDSYSTEM STREAMING ENGINESSYSTEM VIEWS
SYSTEM CLEANUPSYSTEM DROP CACHESYSTEM DROP COMPILED EXPRESSION CACHESYSTEM DROP CONNECTIONS CACHESYSTEM DROP DISTRIBUTED CACHESYSTEM DROP DNS CACHESYSTEM DROP FILESYSTEM CACHESYSTEM DROP FORMAT SCHEMA CACHESYSTEM DROP MARK CACHESYSTEM DROP MMAP CACHESYSTEM DROP PAGE CACHESYSTEM DROP PRIMARY INDEX CACHESYSTEM DROP QUERY CACHESYSTEM DROP S3 CLIENT CACHESYSTEM DROP SCHEMA CACHESYSTEM DROP UNCOMPRESSED CACHE
SYSTEM DROP REPLICASYSTEM FAILPOINTSYSTEM FETCHESSYSTEM FLUSHSYSTEM FLUSH ASYNC INSERT QUEUESYSTEM FLUSH LOGS
SYSTEM JEMALLOCSYSTEM LISTENSYSTEM LOAD PRIMARY KEYSYSTEM MERGESSYSTEM MOVESSYSTEM PULLING REPLICATION LOGSYSTEM REDUCE BLOCKING PARTSSYSTEM REPLICATION QUEUESSYSTEM REPLICA READINESSSYSTEM RESET DDL WORKERSYSTEM RESTART DISKSYSTEM RESTART REPLICASYSTEM RESTORE REPLICASYSTEM RELOADSYSTEM RELOAD ASYNCHRONOUS METRICSSYSTEM RELOAD CONFIGSYSTEM RELOAD DICTIONARYSYSTEM RELOAD EMBEDDED DICTIONARIESSYSTEM RELOAD FUNCTIONSYSTEM RELOAD MODELSYSTEM RELOAD USERS
SYSTEM SENDSSYSTEM DISTRIBUTED SENDSSYSTEM REPLICATED SENDS
SYSTEM SHUTDOWNSYSTEM SYNC DATABASE REPLICASYSTEM SYNC FILE CACHESYSTEM SYNC FILESYSTEM CACHESYSTEM SYNC REPLICASYSTEM SYNC TRANSACTION LOGSYSTEM THREAD FUZZERSYSTEM TTL MERGESSYSTEM UNFREEZESYSTEM UNLOAD PRIMARY KEYSYSTEM VIRTUAL PARTS UPDATESYSTEM WAIT LOADING PARTS
TABLE ENGINETRUNCATEUNDROP TABLE
NONE
أمثلة على كيفية التعامل مع هذا التسلسل الهرمي:
- يشمل الامتياز
ALTERجميع امتيازاتALTER*الأخرى. - يشمل
ALTER CONSTRAINTامتيازاتALTER ADD CONSTRAINTوALTER DROP CONSTRAINTوALTER MODIFY CONSTRAINT.
تُطبَّق الامتيازات على مستويات مختلفة. وتساعد معرفة المستوى على تحديد الصيغة المتاحة للامتياز.
المستويات (من الأدنى إلى الأعلى):
COLUMN— يمكن منح الامتياز على مستوى العمود أو الجدول أو قاعدة البيانات أو على المستوى العام.TABLE— يمكن منح الامتياز على مستوى الجدول أو قاعدة البيانات أو على المستوى العام.VIEW— يمكن منح الامتياز على مستوى العرض أو قاعدة البيانات أو على المستوى العام.DICTIONARY— يمكن منح الامتياز على مستوى القاموس أو قاعدة البيانات أو على المستوى العام.DATABASE— يمكن منح الامتياز على مستوى قاعدة البيانات أو على المستوى العام.GLOBAL— لا يمكن منح الامتياز إلا على المستوى العام.GROUP— يجمع امتيازات من مستويات مختلفة. وعند منح امتياز على مستوىGROUP، لا تُمنح من هذه المجموعة إلا الامتيازات التي تتوافق مع الصيغة المستخدمة.
أمثلة على الصيغة المسموح بها:
GRANT SELECT(x) ON db.table TO userGRANT SELECT ON db.* TO user
أمثلة على الصيغة غير المسموح بها:
GRANT CREATE USER(x) ON db.table TO userGRANT CREATE USER ON db.* TO user
يمنح الامتياز الخاص ALL جميع الامتيازات إلى حساب مستخدم أو دور.
افتراضيًا، لا يملك حساب المستخدم أو الدور أي امتيازات.
إذا لم يكن لدى مستخدم أو دور أي امتيازات، فسيُعرض ذلك على أنه الامتياز NONE.
تتطلب بعض الاستعلامات، بحسب طريقة تنفيذها، مجموعة من الامتيازات. على سبيل المثال، لتنفيذ الاستعلام RENAME تحتاج إلى الامتيازات التالية: SELECT وCREATE TABLE وINSERT وDROP TABLE.
SELECT
يسمح بتنفيذ استعلامات SELECT.
مستوى الامتياز: COLUMN.
الوصف
يمكن للمستخدم الممنوح هذا الامتياز تنفيذ استعلامات SELECT على قائمة محددة من الأعمدة في الجدول وقاعدة البيانات المحددَين. وإذا تضمّن المستخدم أعمدة أخرى غير محددة، فلن يُرجع الاستعلام أي بيانات.
لنأخذ الامتياز التالي:
GRANT SELECT(x,y) ON db.table TO johnيتيح هذا الامتياز للمستخدم john تنفيذ أي استعلام SELECT يتضمن بيانات من العمودين x و/أو y في db.table، على سبيل المثال: SELECT x FROM db.table. لا يمكن للمستخدم john تنفيذ SELECT z FROM db.table. كما أن SELECT * FROM db.table غير متاح أيضًا. عند معالجة هذا الاستعلام، لا يعيد ClickHouse أي بيانات، حتى x وy. والاستثناء الوحيد هو إذا كان الجدول يحتوي فقط على العمودين x وy، ففي هذه الحالة يعيد ClickHouse جميع البيانات.
INSERT
يسمح بتنفيذ استعلامات INSERT.
مستوى الامتياز: COLUMN.
الوصف
يمكن للمستخدم الممنوح هذا الامتياز تنفيذ استعلامات INSERT على قائمة محددة من الأعمدة في الجدول وقاعدة البيانات المحددين. وإذا تضمّن المستخدم أعمدة أخرى غير محددة، فلن يُدرِج الاستعلام أي بيانات.
مثال
GRANT INSERT(x,y) ON db.table TO johnيتيح الامتياز الممنوح للمستخدم john إدخال بيانات في العمودين x و/أو y في db.table.
ALTER
يسمح بتنفيذ استعلامات ALTER وفقًا للتسلسل الهرمي التالي للامتيازات:
ALTER. المستوى:COLUMN.ALTER TABLE. المستوى:GROUPALTER UPDATE. المستوى:COLUMN. الأسماء البديلة:UPDATEALTER DELETE. المستوى:COLUMN. الأسماء البديلة:DELETEALTER COLUMN. المستوى:GROUPALTER ADD COLUMN. المستوى:COLUMN. الأسماء البديلة:ADD COLUMNALTER DROP COLUMN. المستوى:COLUMN. الأسماء البديلة:DROP COLUMNALTER MODIFY COLUMN. المستوى:COLUMN. الأسماء البديلة:MODIFY COLUMNALTER COMMENT COLUMN. المستوى:COLUMN. الأسماء البديلة:COMMENT COLUMNALTER CLEAR COLUMN. المستوى:COLUMN. الأسماء البديلة:CLEAR COLUMNALTER RENAME COLUMN. المستوى:COLUMN. الأسماء البديلة:RENAME COLUMNALTER INDEX. المستوى:GROUP. الأسماء البديلة:INDEXALTER ORDER BY. المستوى:TABLE. الأسماء البديلة:ALTER MODIFY ORDER BY,MODIFY ORDER BYALTER SAMPLE BY. المستوى:TABLE. الأسماء البديلة:ALTER MODIFY SAMPLE BY,MODIFY SAMPLE BYALTER ADD INDEX. المستوى:TABLE. الأسماء البديلة:ADD INDEXALTER DROP INDEX. المستوى:TABLE. الأسماء البديلة:DROP INDEXALTER MATERIALIZE INDEX. المستوى:TABLE. الأسماء البديلة:MATERIALIZE INDEXALTER CLEAR INDEX. المستوى:TABLE. الأسماء البديلة:CLEAR INDEXALTER CONSTRAINT. المستوى:GROUP. الأسماء البديلة:CONSTRAINTALTER ADD CONSTRAINT. المستوى:TABLE. الأسماء البديلة:ADD CONSTRAINTALTER DROP CONSTRAINT. المستوى:TABLE. الأسماء البديلة:DROP CONSTRAINTALTER MODIFY CONSTRAINT. المستوى:TABLE. الأسماء البديلة:MODIFY CONSTRAINTALTER TTL. المستوى:TABLE. الأسماء البديلة:ALTER MODIFY TTL,MODIFY TTLALTER MATERIALIZE TTL. المستوى:TABLE. الأسماء البديلة:MATERIALIZE TTLALTER SETTINGS. المستوى:TABLE. الأسماء البديلة:ALTER SETTING,ALTER MODIFY SETTING,MODIFY SETTINGALTER MOVE PARTITION. المستوى:TABLE. الأسماء البديلة:ALTER MOVE PART,MOVE PARTITION,MOVE PARTALTER FETCH PARTITION. المستوى:TABLE. الأسماء البديلة:ALTER FETCH PART,FETCH PARTITION,FETCH PARTALTER FREEZE PARTITION. المستوى:TABLE. الأسماء البديلة:FREEZE PARTITIONALTER EXECUTE. المستوى:TABLE. الأسماء البديلة:ALTER TABLE EXECUTEALTER VIEW. المستوى:GROUPALTER VIEW REFRESH. المستوى:VIEW. الأسماء البديلة:REFRESH VIEWALTER VIEW MODIFY QUERY. المستوى:VIEW. الأسماء البديلة:ALTER TABLE MODIFY QUERYALTER VIEW MODIFY SQL SECURITY. المستوى:VIEW. الأسماء البديلة:ALTER TABLE MODIFY SQL SECURITY
أمثلة على كيفية تطبيق هذا التسلسل الهرمي:
- يشمل امتياز
ALTERجميع امتيازاتALTER*الأخرى. - يشمل
ALTER CONSTRAINTامتيازاتALTER ADD CONSTRAINTوALTER DROP CONSTRAINTوALTER MODIFY CONSTRAINT.
ملاحظات
- يتيح امتياز
MODIFY SETTINGتعديل إعدادات محرك الجدول. ولا يؤثر في الإعدادات أو معلمات تهيئة الخادم. - تتطلب عملية
ATTACHامتياز CREATE. - تتطلب عملية
DETACHامتياز DROP. - لإيقاف عملية mutation باستخدام الاستعلام KILL MUTATION، يجب أن تمتلك امتياز بدء هذه العملية. على سبيل المثال، إذا أردت إيقاف استعلام
ALTER UPDATE، فستحتاج إلى امتيازALTER UPDATEأوALTER TABLEأوALTER.
BACKUP
يتيح تنفيذ [BACKUP] ضمن الاستعلامات. لمزيد من المعلومات حول النسخ الاحتياطية، راجع "النسخ الاحتياطي والاستعادة".
CREATE
يتيح تنفيذ استعلامات DDL من نوع CREATE وATTACH وفقًا للتسلسل الهرمي التالي للامتيازات:
CREATE. المستوى:GROUPCREATE DATABASE. المستوى:DATABASECREATE TABLE. المستوى:TABLECREATE ARBITRARY TEMPORARY TABLE. المستوى:GLOBALCREATE TEMPORARY TABLE. المستوى:GLOBAL
CREATE VIEW. المستوى:VIEWCREATE DICTIONARY. المستوى:DICTIONARY
ملاحظات
- لحذف الجدول الذي أُنشئ، يحتاج المستخدم إلى DROP.
CLUSTER
يسمح بتنفيذ الاستعلامات التي تستخدم ON CLUSTER.
GRANT CLUSTER ON *.* TO <username>افتراضيًا، تتطلب الاستعلامات التي تستخدم ON CLUSTER أن يكون لدى المستخدم امتياز CLUSTER.
ستظهر لك رسالة الخطأ التالية إذا حاولت استخدام ON CLUSTER في استعلام بدون منح امتياز CLUSTER أولًا:
Not enough privileges. To execute this query, it's necessary to have the grant CLUSTER ON *.*.يمكن تغيير السلوك الافتراضي من خلال تعيين الإعداد on_cluster_queries_require_cluster_grant،
الموجود في قسم access_control_improvements في ملف config.xml (انظر أدناه)، إلى false.
<access_control_improvements>
<on_cluster_queries_require_cluster_grant>true</on_cluster_queries_require_cluster_grant>
</access_control_improvements>DROP
يتيح تنفيذ استعلامات DROP وDETACH وفق التسلسل الهرمي التالي للامتيازات:
DROP. المستوى:GROUPDROP DATABASE. المستوى:DATABASEDROP TABLE. المستوى:TABLEDROP VIEW. المستوى:VIEWDROP DICTIONARY. المستوى:DICTIONARY
TRUNCATE
يتيح تنفيذ استعلامات TRUNCATE.
مستوى الامتياز: TABLE.
OPTIMIZE
يسمح بتنفيذ استعلامات OPTIMIZE TABLE.
مستوى الامتياز: TABLE.
SHOW
يسمح بتنفيذ استعلامات SHOW وDESCRIBE وUSE وEXISTS وفق التسلسل الهرمي التالي للامتيازات:
SHOW. المستوى:GROUPSHOW DATABASES. المستوى:DATABASE. يتيح تنفيذ استعلاماتSHOW DATABASESوSHOW CREATE DATABASEوUSE <database>.SHOW TABLES. المستوى:TABLE. يتيح تنفيذ استعلاماتSHOW TABLESوEXISTS <table>وCHECK <table>.SHOW COLUMNS. المستوى:COLUMN. يتيح تنفيذ استعلاماتSHOW CREATE TABLEوDESCRIBE.SHOW DICTIONARIES. المستوى:DICTIONARY. يتيح تنفيذ استعلاماتSHOW DICTIONARIESوSHOW CREATE DICTIONARYوEXISTS <dictionary>.
ملاحظات
يكون لدى المستخدم امتياز SHOW إذا كان لديه أي امتياز آخر متعلق بالجدول أو القاموس أو قاعدة البيانات المحددة.
KILL QUERY
يتيح تنفيذ استعلامات KILL وفقًا للتسلسل الهرمي التالي للامتيازات:
مستوى الامتياز: GLOBAL.
ملاحظات
يتيح امتياز KILL QUERY لمستخدمٍ ما إنهاء استعلامات المستخدمين الآخرين.
إدارة الوصول
يتيح للمستخدم تنفيذ الاستعلامات التي تدير المستخدمين والأدوار وسياسات الصفوف.
ACCESS MANAGEMENT. المستوى:GROUPCREATE USER. المستوى:GLOBALALTER USER. المستوى:GLOBALDROP USER. المستوى:GLOBALCREATE ROLE. المستوى:GLOBALALTER ROLE. المستوى:GLOBALDROP ROLE. المستوى:GLOBALROLE ADMIN. المستوى:GLOBALCREATE ROW POLICY. المستوى:GLOBAL. الأسماء البديلة:CREATE POLICYALTER ROW POLICY. المستوى:GLOBAL. الأسماء البديلة:ALTER POLICYDROP ROW POLICY. المستوى:GLOBAL. الأسماء البديلة:DROP POLICYCREATE QUOTA. المستوى:GLOBALALTER QUOTA. المستوى:GLOBALDROP QUOTA. المستوى:GLOBALCREATE SETTINGS PROFILE. المستوى:GLOBAL. الأسماء البديلة:CREATE PROFILEALTER SETTINGS PROFILE. المستوى:GLOBAL. الأسماء البديلة:ALTER PROFILEDROP SETTINGS PROFILE. المستوى:GLOBAL. الأسماء البديلة:DROP PROFILESHOW ACCESS. المستوى:GROUPSHOW_USERS. المستوى:GLOBAL. الأسماء البديلة:SHOW CREATE USERSHOW_ROLES. المستوى:GLOBAL. الأسماء البديلة:SHOW CREATE ROLESHOW_ROW_POLICIES. المستوى:GLOBAL. الأسماء البديلة:SHOW POLICIES,SHOW CREATE ROW POLICY,SHOW CREATE POLICYSHOW_QUOTAS. المستوى:GLOBAL. الأسماء البديلة:SHOW CREATE QUOTASHOW_SETTINGS_PROFILES. المستوى:GLOBAL. الأسماء البديلة:SHOW PROFILES,SHOW CREATE SETTINGS PROFILE,SHOW CREATE PROFILE
ALLOW SQL SECURITY NONE. المستوى:GLOBAL. الأسماء البديلة:CREATE SQL SECURITY NONE,SQL SECURITY NONE,SECURITY NONE
يتيح امتياز ROLE ADMIN للمستخدم منح أي أدوار وسحبها، بما في ذلك الأدوار التي لم تُمنح للمستخدم مع خيار المسؤول.
SYSTEM
يسمح للمستخدم بتنفيذ استعلامات SYSTEM وفقًا لتسلسل هرمي التالي للامتيازات.
SYSTEM. المستوى:GROUPSYSTEM SHUTDOWN. المستوى:GLOBAL. الأسماء البديلة:SYSTEM KILL,SHUTDOWNSYSTEM DROP CACHE. الأسماء البديلة:DROP CACHESYSTEM DROP DNS CACHE. المستوى:GLOBAL. الأسماء البديلة:SYSTEM CLEAR DNS CACHE,SYSTEM DROP DNS,DROP DNS CACHE,DROP DNSSYSTEM DROP MARK CACHE. المستوى:GLOBAL. الأسماء البديلة:SYSTEM CLEAR MARK CACHE,SYSTEM DROP MARK,DROP MARK CACHE,DROP MARKSSYSTEM DROP UNCOMPRESSED CACHE. المستوى:GLOBAL. الأسماء البديلة:SYSTEM CLEAR UNCOMPRESSED CACHE,SYSTEM DROP UNCOMPRESSED,DROP UNCOMPRESSED CACHE,DROP UNCOMPRESSED
SYSTEM RELOAD. المستوى:GROUPSYSTEM RELOAD CONFIG. المستوى:GLOBAL. الأسماء البديلة:RELOAD CONFIGSYSTEM RELOAD DICTIONARY. المستوى:GLOBAL. الأسماء البديلة:SYSTEM RELOAD DICTIONARIES,RELOAD DICTIONARY,RELOAD DICTIONARIES,SYSTEM UNLOAD DICTIONARY,SYSTEM UNLOAD DICTIONARIES,UNLOAD DICTIONARY,UNLOAD DICTIONARIESSYSTEM RELOAD EMBEDDED DICTIONARIES. المستوى:GLOBAL. الأسماء البديلة:RELOAD EMBEDDED DICTIONARIES
SYSTEM MERGES. المستوى:TABLE. الأسماء البديلة:SYSTEM STOP MERGES,SYSTEM START MERGES,STOP MERGES,START MERGESSYSTEM TTL MERGES. المستوى:TABLE. الأسماء البديلة:SYSTEM STOP TTL MERGES,SYSTEM START TTL MERGES,STOP TTL MERGES,START TTL MERGESSYSTEM FETCHES. المستوى:TABLE. الأسماء البديلة:SYSTEM STOP FETCHES,SYSTEM START FETCHES,STOP FETCHES,START FETCHESSYSTEM MOVES. المستوى:TABLE. الأسماء البديلة:SYSTEM STOP MOVES,SYSTEM START MOVES,STOP MOVES,START MOVESSYSTEM SENDS. المستوى:GROUP. الأسماء البديلة:SYSTEM STOP SENDS,SYSTEM START SENDS,STOP SENDS,START SENDSSYSTEM DISTRIBUTED SENDS. المستوى:TABLE. الأسماء البديلة:SYSTEM STOP DISTRIBUTED SENDS,SYSTEM START DISTRIBUTED SENDS,STOP DISTRIBUTED SENDS,START DISTRIBUTED SENDSSYSTEM REPLICATED SENDS. المستوى:TABLE. الأسماء البديلة:SYSTEM STOP REPLICATED SENDS,SYSTEM START REPLICATED SENDS,STOP REPLICATED SENDS,START REPLICATED SENDS
SYSTEM REPLICATION QUEUES. المستوى:TABLE. الأسماء البديلة:SYSTEM STOP REPLICATION QUEUES,SYSTEM START REPLICATION QUEUES,STOP REPLICATION QUEUES,START REPLICATION QUEUESSYSTEM SYNC REPLICA. المستوى:TABLE. الأسماء البديلة:SYNC REPLICASYSTEM RESTART REPLICA. المستوى:TABLE. الأسماء البديلة:RESTART REPLICASYSTEM BACKGROUND. المستوى:GROUPSYSTEM STREAMING ENGINES. المستوى:TABLESYSTEM VIEWS. المستوى:VIEW. الأسماء البديلة:SYSTEM REFRESH VIEW,SYSTEM START VIEWS,SYSTEM STOP VIEWS,SYSTEM START VIEW,SYSTEM STOP VIEW,SYSTEM PAUSE VIEWS,SYSTEM PAUSE VIEW,SYSTEM CANCEL VIEW,REFRESH VIEW,START VIEWS,STOP VIEWS,START VIEW,STOP VIEW,PAUSE VIEWS,PAUSE VIEW,CANCEL VIEW
SYSTEM FLUSH. المستوى:GROUPSYSTEM FLUSH DISTRIBUTED. المستوى:TABLE. الأسماء البديلة:FLUSH DISTRIBUTEDSYSTEM FLUSH LOGS. المستوى:GLOBAL. الأسماء البديلة:FLUSH LOGS
يعيد الأمران SYSTEM UNLOAD DICTIONARY وSYSTEM UNLOAD DICTIONARIES استخدام امتياز SYSTEM RELOAD DICTIONARY، لذلك يمكن للمستخدم الذي لديه SYSTEM RELOAD DICTIONARY أيضًا إلغاء تحميل القواميس.
يُمنَح الامتياز SYSTEM RELOAD EMBEDDED DICTIONARIES ضمنيًا من خلال الامتياز SYSTEM RELOAD DICTIONARY ON *.*.
INTROSPECTION
يسمح باستخدام دوال الفحص الداخلي.
INTROSPECTION. المستوى:GROUP. الأسماء البديلة:INTROSPECTION FUNCTIONSaddressToLine. المستوى:GLOBALaddressToLineWithInlines. المستوى:GLOBALaddressToSymbol. المستوى:GLOBALdemangle. المستوى:GLOBAL
المصادر
يتيح استخدام مصادر البيانات الخارجية. ينطبق على محركات الجداول ودوال الجداول.
READ. المستوى:GLOBAL_WITH_PARAMETERWRITE. المستوى:GLOBAL_WITH_PARAMETER
المعلمات الممكنة:
AZUREBIGQUERYFILEHDFSHIVEJDBCKAFKAMONGOMYSQLNATSODBCPOSTGRESRABBITMQREDISREMOTES3SQLITEURL
أمثلة:
- لإنشاء جدول باستخدام محرك جدول MySQL، تحتاج إلى امتيازَي
CREATE TABLE (ON db.table_name)وMYSQL. - لاستخدام دالة الجدول MySQL، تحتاج إلى
CREATE TEMPORARY TABLEوامتيازاتMYSQL.
امتيازات مرشح المصدر
يمكنك منح حق الوصول إلى عناوين URI لمصادر محددة باستخدام عوامل تصفية بالتعبيرات النمطية. يتيح ذلك تحكمًا دقيقًا في مصادر البيانات الخارجية التي يمكن للمستخدمين الوصول إليها.
الصيغة:
GRANT READ ON S3('regexp_pattern') TO userسيتيح هذا الامتياز للمستخدم القراءة فقط من عناوين URI الخاصة بـ S3 التي تطابق التعبير النمطي المحدد.
أمثلة:
امنح حق الوصول إلى مسارات محددة في حاوية S3:
-- Allow user to read only from s3://foo/ paths
GRANT READ ON S3('s3://foo/.*') TO john
-- Allow user to read from specific file patterns
GRANT READ ON S3('s3://mybucket/data/2024/.*\.parquet') TO analyst
-- Multiple filters can be granted to the same user
GRANT READ ON S3('s3://foo/.*') TO john
GRANT READ ON S3('s3://bar/.*') TO johnإعادة المنح باستخدام GRANT OPTION:
إذا كان المنح الأصلي يتضمن WITH GRANT OPTION، فيمكن إعادة منحه باستخدام GRANT CURRENT GRANTS:
-- Original grant with GRANT OPTION
GRANT READ ON S3('s3://foo/.*') TO john WITH GRANT OPTION
-- John can now regrant this access to others
GRANT CURRENT GRANTS(READ ON S3) TO aliceقيود مهمة:
- لا يُسمح بإلغاء الصلاحيات جزئيًا: لا يمكنك إلغاء جزء من نمط التصفية الممنوح. يجب إلغاء المنح بالكامل ثم منحها من جديد باستخدام أنماط جديدة عند الحاجة.
- لا يُسمح بمنحٍ باستخدام أحرف البدل فقط: لا يمكنك استخدام
GRANT READ ON *('regexp')أو أنماط مشابهة تعتمد على أحرف البدل فقط. يجب تحديدsourceبعينه.
dictGet
dictGet. الأسماء البديلة:dictHas,dictGetHierarchy,dictGetRoot,dictGetChildren,dictGetDescendants,dictIsIn
يسمح للمستخدم بتنفيذ الدوال dictGet، وdictHas، وdictGetHierarchy، وdictGetRoot، وdictGetChildren، وdictGetDescendants، وdictIsIn.
مستوى الامتياز: DICTIONARY.
أمثلة
GRANT dictGet ON mydb.mydictionary TO johnGRANT dictGet ON mydictionary TO john
displaySecretsInShowAndSelect
يسمح للمستخدم بعرض الأسرار في استعلامات SHOW وSELECT إذا كان كلٌّ من
display_secrets_in_show_and_select إعداد الخادم
و
format_display_secrets_in_show_and_select إعداد التنسيق
مفعّلَين.
NAMED COLLECTION ADMIN
يسمح بإجراء عملية معيّنة على مجموعة مُسمّاة محددة. قبل الإصدار 23.7 كان يُسمّى NAMED COLLECTION CONTROL، وبعد 23.7 أُضيف NAMED COLLECTION ADMIN مع الإبقاء على NAMED COLLECTION CONTROL كاسم بديل.
NAMED COLLECTION ADMIN. المستوى:NAMED_COLLECTION. الأسماء البديلة:NAMED COLLECTION CONTROLCREATE NAMED COLLECTION. المستوى:NAMED_COLLECTIONDROP NAMED COLLECTION. المستوى:NAMED_COLLECTIONALTER NAMED COLLECTION. المستوى:NAMED_COLLECTIONSHOW NAMED COLLECTIONS. المستوى:NAMED_COLLECTION. الأسماء البديلة:SHOW NAMED COLLECTIONSSHOW NAMED COLLECTIONS SECRETS. المستوى:NAMED_COLLECTION. الأسماء البديلة:SHOW NAMED COLLECTIONS SECRETSNAMED COLLECTION. المستوى:NAMED_COLLECTION. الأسماء البديلة:NAMED COLLECTION USAGE, USE NAMED COLLECTION
على عكس جميع امتيازات grant الأخرى (CREATE وDROP وALTER وSHOW)، لم يُضَف امتياز grant لـ NAMED COLLECTION إلا في الإصدار 23.7، بينما أُضيفت جميع الامتيازات الأخرى في وقتٍ سابق، في الإصدار 22.12.
أمثلة
بافتراض أن المجموعة المُسمّاة تُدعى abc، فإننا نمنح الامتياز CREATE NAMED COLLECTION للمستخدم john.
GRANT CREATE NAMED COLLECTION ON abc TO john
TABLE ENGINE
يسمح باستخدام محرك جدول محدد عند إنشاء جدول. ينطبق على محركات الجداول.
أمثلة
GRANT TABLE ENGINE ON * TO johnGRANT TABLE ENGINE ON TinyLog TO john
قد تتطلب بعض محركات الجداول التي تستخدم مصادر خارجية أذونات READ/WRITE على المصدر المقابل. راجع المصادر.
على سبيل المثال، بالنسبة إلى محرك الجدول AzureBlobStorage، قد يلزم منح الامتياز التالي.
GRANT READ, WRITE ON AZURE TO john
ALL
يمنح جميع الامتيازات على الكيان المعني إلى حساب مستخدم أو دور.
NONE
لا يمنح أي امتيازات.
ADMIN OPTION
يتيح امتياز ADMIN OPTION للمستخدم منح دوره إلى مستخدم آخر.