ユーザー作成後、必要に応じてユーザーの権限を確認できます。
前提条件
SHOW GRANTSステートメントを使用してユーザー権限を照会する場合、現在のユーザー自身を照会する場合は特に権限は不要です。他のユーザーを照会する場合は、グローバルなSELECT権限が必要です。ビューを使用してユーザー権限を確認する場合、対応するビューに対する
SELECT権限が必要です。
操作手順
管理者がデータベースのMySQLテナントにログインします。
以下の方法でユーザー権限を確認します。
SHOW GRANTSステートメントを使用して、ユーザーに付与された権限を確認します。現在のユーザーに付与された権限を確認するには、次のいずれかのステートメントを使用できます:
obclient> SHOW GRANTS;obclient> SHOW GRANTS FOR CURRENT_USER;obclient> SHOW GRANTS FOR CURRENT_USER();指定されたユーザーに付与された権限を確認する必要がある場合は、
FOR句を追加します。ステートメントは次のとおりです:obclient> SHOW GRANTS FOR test;クエリ結果の例は次のとおりです。
+----------------------------------------+ | Grants for test@% | +----------------------------------------+ | GRANT INSERT, SELECT ON *.* TO 'test' | | GRANT SELECT ON `db1`.* TO 'test' | +----------------------------------------+ 2 rows in setユーザーが持つグローバル権限を確認します。
mysql.userビューを使用して、ユーザーが持つグローバル権限を確認できます。例:
obclient> SELECT * FROM mysql.user WHERE user='test'\G *************************** 1. row *************************** host: % user: test password: *6691484ea6b50ddde1926a220da01fa9e575c18a select_priv: Y insert_priv: Y update_priv: N delete_priv: N create_priv: N drop_priv: N reload_priv: N shutdown_priv: N process_priv: N file_priv: N grant_priv: N reference_priv: N index_priv: N alter_priv: N show_db_priv: N super_priv: N create_tmp_table_priv: N lock_tables_priv: N execute_priv: N repl_slave_priv: N repl_client_priv: N create_view_priv: N show_view_priv: N create_routine_priv: N alter_routine_priv: N create_user_priv: N event_priv: N trigger_priv: N create_tablespace_priv: N ssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0 max_updates: 0 max_connections: 0 max_user_connections: 0 plugin: ob_native_password authentication_string: password_expired: 1 row in setmysql.userビューのフィールドとその説明の詳細については、mysql.userを参照してください。ユーザーが持つデータベースレベルの権限を確認します。
mysql.dbビューを使用して、特定のユーザーが持つデータベースレベルの権限を確認できます。obclient> SELECT * FROM mysql.db WHERE user='test'\G *************************** 1. row *************************** host: % db: test user: test select_priv: Y insert_priv: Y update_priv: Y delete_priv: N create_priv: N drop_priv: N grant_priv: N reference_priv: N index_priv: Y alter_priv: Y create_tmp_table_priv: N lock_tables_priv: N create_view_priv: N show_view_priv: Y create_routine_priv: N alter_routine_priv: N execute_priv: N event_priv: N trigger_priv: N 1 row in setmysql.dbビューのフィールドとその説明の詳細については、mysql.dbを参照してください。ユーザーに付与された列権限を確認します。
ビュー
mysql.columns_privまたはinformation_schema.COLUMN_PRIVILEGESを使用して、ユーザーに付与された列権限を確認できます。ビュー
mysql.columns_privのクエリobclient [mysql]> SELECT * FROM mysql.columns_priv;クエリ結果は次のとおりです:
+------+-------+-------+------------+-------------+-------------+---------------------+ | Host | Db | User | Table_name | Column_name | Column_priv | Timestamp | +------+-------+-------+------------+-------------+-------------+---------------------+ | % | test1 | user2 | tbl1 | c1 | Insert | 2024-03-27 15:02:57 | | % | test1 | user1 | tbl1 | c1 | Select | 2024-03-27 11:05:21 | +------+-------+-------+------------+-------------+-------------+---------------------+ 2 rows in setビュー
information_schema_COLUMN_PRIVILEGESのクエリobclient [information_schema]> SELECT * FROM information_schema.COLUMN_PRIVILEGES;クエリ結果は次のとおりです:
+-------------+---------------+--------------+------------+-------------+----------------+--------------+ | GRANTEE | TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | PRIVILEGE_TYPE | IS_GRANTABLE | +-------------+---------------+--------------+------------+-------------+----------------+--------------+ | 'user2'@'%' | def | test1 | tbl1 | c1 | INSERT | YES | | 'user1'@'%' | def | test1 | tbl1 | c1 | SELECT | NO | +-------------+---------------+--------------+------------+-------------+----------------+--------------+ 2 rows in setinformation_schema_COLUMN_PRIVILEGESビューのフィールドとその説明の詳細については、information_schema_COLUMN_PRIVILEGESを参照してください。
関連ドキュメント
ユーザー権限および権限付与に関する操作の詳細については、以下を参照してください: