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";