ホームページ  >  記事  >  データベース  >  MySQL でユーザー ロールの権限を表示するステートメントを実装するにはどうすればよいですか?

MySQL でユーザー ロールの権限を表示するステートメントを実装するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-11-08 09:40:481325ブラウズ

MySQL でユーザー ロールの権限を表示するステートメントを実装するにはどうすればよいですか?

MySQL でユーザー ロールの権限を表示するステートメントを実装するにはどうすればよいですか?

MySQL は、柔軟な権限管理メカニズムを備えた一般的なリレーショナル データベース管理システムです。 MySQL では、ユーザーにさまざまなロールを割り当て、各ロールに特定の権限を割り当てることができます。この記事では、MySQL ステートメントを使用してユーザー ロールの権限を表示する方法を紹介します。

MySQL では、次のステートメントを使用してユーザー ロールの権限情報を表示できます:

SHOW GRANTS FOR <username>;

ここで、<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 権限を持つユーザーのみが他のユーザーの権限情報を表示できます。

MySQL 8.0 では、より強力なロール権限管理システムが導入されていることに言及する価値があります。新しいバージョンでは、

SHOW ROLE GRANTS ステートメントを使用して、ロールの権限情報を表示できます。さらに、GRANT ROLE ステートメントを使用してユーザーにロールを付与できます。

要約すると、上記の MySQL ステートメントを通じて、ユーザーのロール権限を簡単に表示できます。これは、複雑な MySQL データベース システムを管理する場合に役立ち、ユーザーが必要なデータと機能にのみアクセスできるようにします。

以上がMySQL でユーザー ロールの権限を表示するステートメントを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。