MySQL でユーザー ロールの権限を表示するステートメントを実装するにはどうすればよいですか?
MySQL は、柔軟な権限管理メカニズムを備えた一般的なリレーショナル データベース管理システムです。 MySQL では、ユーザーにさまざまなロールを割り当て、各ロールに特定の権限を割り当てることができます。この記事では、MySQL ステートメントを使用してユーザー ロールの権限を表示する方法を紹介します。
MySQL では、次のステートメントを使用してユーザー ロールの権限情報を表示できます:
SHOW GRANTS FOR <username>;
ここで、<username>
は権限を取得するユーザー名です。見た。このステートメントを使用すると、ユーザーに直接付与されたアクセス許可と、ロールを通じて間接的にユーザーに付与されたアクセス許可を含む、指定されたユーザーのすべてのアクセス許可を表示できます。
たとえば、test_user
という名前のユーザーのロール権限を表示すると仮定すると、次のクエリ ステートメントを実行できます。
SHOW GRANTS FOR 'test_user';
上記のステートメントを実行した後、 MySQL は、特定のユーザーの権限情報を表す 1 つまたは複数の認可ステートメントを返します。
すべてのユーザーのロール権限を表示したい場合は、次のステートメントを使用できます:
SELECT DISTINCT `user`.`Host`, `user`.`User`, `roles`.`Role_Name`, `roles`.`Is_Default`, `roles`.`Is_Active`, `roles`.`Grantor` FROM `mysql`.`user` LEFT JOIN `mysql`.`roles_mapping` ON `user`.`User` = `roles_mapping`.`Role` LEFT JOIN `mysql`.`roles` ON `roles`.`Role_Name` = `roles_mapping`.`Role` ORDER BY `user`.`User`, `roles`.`Role_Name`;
上記のステートメントは、各ユーザーに関連付けられたロール情報を含む結果セットを返します。データの各行には、ホスト名 (Host
)、ユーザー名 (User
)、ロール名 (Role_Name
)、およびロールがデフォルトかどうか (##) が含まれます。 #Is_Default)、ロールがアクティブかどうか (
Is_Active)、およびロールの承認者 (
Grantor)。
SELECT 権限を持つユーザーのみが他のユーザーの権限情報を表示できます。
SHOW ROLE GRANTS ステートメントを使用して、ロールの権限情報を表示できます。さらに、
GRANT ROLE ステートメントを使用してユーザーにロールを付与できます。
以上がMySQL でユーザー ロールの権限を表示するステートメントを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。