mysqlデータベースロールの例の詳細な説明

WBOY
リリース: 2022-06-08 20:51:03
転載
2132 人が閲覧しました

この記事では、mysql に関する関連知識を提供します。主にデータベース ロールに関する関連コンテンツを紹介します。ロールを通じてユーザーにアクセス許可を付与すると、同じアクセス許可を持つユーザーの管理が容易になります。ユーザーは、しましょう。以下をご覧ください。皆さんのお役に立てれば幸いです。

mysqlデータベースロールの例の詳細な説明

推奨学習: mysql ビデオ チュートリアル

Mysql データベースの権限管理。特定のユーザーに直接与えるだけです。権限。これを行う際の問題点の 1 つは、多数のユーザーがいる場合、これらのユーザーがすべて同じ権限を持っている場合、操作が少し冗長になることです。次に、ロールを通じてユーザーに権限を付与できます。

ロールの理解

ロールを導入する目的は、同じ権限を持つユーザーの管理を容易にすることです。 適切な権限設定により、データ セキュリティが確保されます。これは非常に重要です

##ロールを作成する

CREATE ROLE ステートメントを使用してロールを作成します。構文は次のとおりです。

CREATE ROLE 'role_name'[@'host_name'] [,'role_name'[@'host_name']]...
ログイン後にコピー

ロール名の命名規則 ユーザー名と同様。 host_name を省略した場合、デフォルトは % になります。role_name は省略できず、空にすることもできません。

演習: 次に、マネージャー ロールを作成する必要があります。次のコードを使用できます:

CREATE ROLE 'manager'@'localhost';
ログイン後にコピー

結果は以下のようになります

ロールに権限を付与する

ロールの作成後、デフォルトのロールは次のとおりです。 権限がない場合は、ロールを承認する必要があります。ロールの承認を付与するための構文構造は次のとおりです。

GRANT privileges ON table_name TO 'role_name'[@'host_name'];
ログイン後にコピー

例: マネージャー ロールに、dbtest1 データベース内のすべてのテーブルを表示する権限を付与します

役割権限の表示

ロールを作成している限り、システムは自動的に「USAGE」権限を付与します。これは、データベースに接続する権限を意味します。

ロールの権限を再利用する

#ロールが承認された後、ロールの権限を維持し、権限を追加または取り消すことができます。 GRANT ステートメントを使用して権限を追加します。これはロールの承認と同じです。ロールまたはロール権限を取り消すには、REVOKE ステートメントを使用します。

ロールの権限を変更すると、そのロールを所有するアカウントの権限に影響します。

ロール権限を取り消すための SQL 構文は次のとおりです

REVOKE privileges ON tablename FROM 'rolename';
ログイン後にコピー

次に、マネージャーに削除権限を追加し、この権限を取り戻します

##ロールの削除

ロールを再統合する必要がある場合ビジネス 場合によっては、以前に作成したロールをクリーンアップし、使用されなくなったロールを削除する必要がある場合があります。文字を削除する操作は非常に簡単で、文法構造をマスターするだけで済みます。

DROP ROLE role [,role2]...
ログイン後にコピー

ロールを削除すると、ユーザーはこのロールを通じて取得したすべての権限を失うことに注意してください。

给用户赋予角色          

角色创建并授权后,要赋给用户并处于 激活状态 才能发挥作用。给用户添加角色可使用GRANT语句,语 法形式如下:          

GRANT role [,role2,...] TO user [,user2,...];
ログイン後にコピー

在上述语句中,role代表角色,user代表用户。可将多个角色同时赋予多个用户,用逗号隔开即可。           

例子:创建一个用户叫wang5 然后赋予角色manager,操作如下          

         

用wang5登录并操作

 

赋予wang5角色manager  注意这个是通过root用户实现的

 

然后通过wang5登录查看数据库

此时还是看不到dbtest1,这是怎么回事呢?原来我们需要激活角色

激活角色

方式1:使用set default role 命令激活角色

SET DEFAULT ROLE ALL TO 'kangshifu'@'localhost';
ログイン後にコピー

 现在激活manager角色

然后再通过wang5用户登录查看

激活方式2:将activate_all_roles_on_login设置为ON          

 默认情况:

 设置 SET GLOBAL activate_all_roles_on_login=ON;

这条 SQL 语句的意思是,对 所有角色永久激活 。运行这条语句之后,用户才真正拥有了赋予角色的所有 权限。            

那么现在wang5已经被赋予manager角色,我们知道manager角色只是有select的权限。我们做如下操作          

 撤销用户的角色

REVOKE role FROM user;
ログイン後にコピー

比如撤销 wang5的manager角色,通过root用户          

         

 再通过wang5登录看效果

推荐学习:mysql视频教程

以上がmysqlデータベースロールの例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート