mysqlデータベースDCL

mysqlデータベースDCL

一部のユーザーに対する権限の一部であるDCL(Authorization Control)は、一部のユーザーがライブラリー、テーブル、フィールドを管理します。

許可レベル

権限のレベルは、ユーザーに付与できる権限を表します。
権限には次のレベルがあります。

すべてのライブラリとテーブルのグローバルレベルのアクセス許可
データベース内のすべてのテーブルのデータベースレベルのアクセス許可
テーブルレベルのテーブルのアクセス許可
列レベルのフィールドのライブラリアクセス許可

通常、データベースレベルが使用されます。

mysqlユーザー管理

mysql権限が付与されている場合、デフォルトはrootユーザーです。
mysqlライブラリのuserテーブルでユーザーの場所を表示できます。
ここに画像の説明を挿入
ユーザーテーブルの構造を表示できます

desc mysql.user\G;

ここに画像の説明を挿入

ユーザーを作成
# localhost代表本地登陆
# create user 用户@"登陆点" 确认方式 密码;
create user user1@"localhost" identified by "Yue@123456";
create user user1@"192.168.1.%";

選択クエリを使用してユーザーを作成できます

select host,user from mysql.user;

ここに画像の説明を挿入
ここに画像の説明を挿入user1を使用してMysqlにログインできます。

mysql -uuser1 -p"Yue@123456"
ユーザーを削除する
drop user "user1"@"localhost";
パスワードを変更する

ユーザーがパスワードを変更する

set password=password("Ui@12367");# 设置密码
flush privileges;# 刷新

シェルでmysqlパスワードを変更できます。

mysqladmin -uroot -p"Mysql@Password123" password "Yue@12345"

mysqlパスワードを解読する方法

1.起動モードに影響を与えるようにmysql構成ファイルを変更します
。/etc/my.cnfはmysqlのメイン構成ファイルです。

vi /etc/my.cnf

ここに画像の説明を挿入

ファイルの新しい行に書き込みます

skip-grant-tables

2.再起動

systemctl restart mysqld

3.パスワードなしでログイン

mysql -uroot

4.パスワード
変更するrootアカウントを使用してmysqlにログインし、mysqlパスワードを変更します。

update mysql.user set authentication_string=password("Mysql@Password123") where user="root" and host="local host";
flush privileges;

5.構成ファイルを変更します
mysqlを終了し、シェルに戻り、変更されたメイン構成ファイルのスキップパスワードをコメントアウトします。

# skip-grant-tables

6.再起動して、新しいパスワードでログインします。

systemctl restart mysqld
mysql -uroot -p"Mysql@Password123"
ユーザーログイン
# mysql -u用户 -p密码 -P Mysql服务器的端口 数据库名称 -e执行 "命令" -h 远程服务器 
mysql -uroot -p"Mysql@Password123" -P 3306 mysql -e "show tables"

mysqlは
mysqlサーバーへのリモートログインをサポートしています。コマンドを使用して別のクライアントのmysqlにログインできます。

mysqlパーミッションの原則

mysql認証の構文:

grant 权限列表 on 库名.表名 to "用户名"@"客户机" [identified by "密码" with option参数];

権限リストにはすべての権限(権限権限を含まない)があり、クエリを選択して更新し、
データベースを更新します。“*”たとえば、テーブル名には(すべてのライブラリの下のweb.*すべてのテーブル)があり、Webライブラリの下のすべてのテーブルを意味します。
クライアントホストには:192.168.1.*ネットワークセグメントの下
オプションパラメータを持つすべてのホスト:オプション認証オプションを付与する

mysqlパーミッションの例

admin3をbbsライブラリ内のすべてのテーブルに付与します。すべての権限がありますが、承認権限は含まれていません。

grant all on bbs.* to "admin3"@"localhost" identified by "Mysql@Password123";

権限の再利用:
独自の権限を表示する

show grants\G

ここに画像の説明を挿入
rootとして、他のユーザーの権限を表示することもできます。

show grants for admin3@"localhost"\G

ユーザーの権限を再利用します。

# revoke 权限列表 on 数据库名from 用户名@"客户端主机";
revoke all privileges on bbs.* from admin3@"localhost";

おすすめ

転載: blog.csdn.net/qq_45671732/article/details/113090910