Mysqlデータベース管理ユーザー

1. ユーザーを管理する

1.1. ユーザーの作成

CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];
  • ユーザー名: 作成したユーザー名を指定します
  • ソース アドレス: 新しく作成したユーザーがログインできるホストを指定します。IP アドレス、ネットワーク セグメント、およびホスト名の形式を使用できます。ローカル ユーザーは localhost を使用できます。任意のホストからのログインを許可するには、ワイルドカード文字を使用できます%。
  • パスワード:
    • プレーンテキストのパスワードを使用します。パスワードを直接入力すると、データベースに挿入するときに mysql が自動的に暗号化します。
    • 暗号化されたパスワードを使用するには、まず SELECTPASSWORD('password'); を使用して暗号文を取得し、次に PASSWORD 'ciphertext'; をステートメントに追加する必要があります。
    • 「IDENTIFIED BY」部分を省略すると、ユーザーのパスワードは空になります(非推奨)

例: クリアテキストでユーザーを作成する

CREATE USER 'lilade'@'localhost' IDENTIFIED BY '123123';

ここに画像の説明を挿入します
例: 秘密のテキストを使用してユーザーを作成する

select password('abc123');
create user 'james'@'localhost' identified by password '*6691484EA6B50DDDE1926A220DA01FA9E575C18A';

ここに画像の説明を挿入します

1.2. ユーザー情報の表示

作成したユーザーはmysqlデータベースのユーザーテーブルに保存されます。

use mysql;
select User,authentication_string,Host from user;

ここに画像の説明を挿入します

1.3. ユーザー名の変更

rename user 'lilade'@'localhost' to 'DM'@'localhost';

ここに画像の説明を挿入します

1.4. ユーザーの削除

drop user 'james'@'localhost';

ここに画像の説明を挿入します

1.5. 現在のログインユーザーのパスワードを変更する

set password = password('123456');

ここに画像の説明を挿入します

1.6. 他のユーザーのパスワードを変更する

set password for 'DM'@'localhost' = password('abc123');

ここに画像の説明を挿入します

1.7. パスワードを忘れた場合の解決策

mysql パスワードを忘れた場合
1. 設定ファイルを変更し、mysql へのログイン時に認可テーブルが使用されないように設定を追加します。

#进入配置文件
vim /etc/my.cnf
#添加此行
skip-grant-tables

ここに画像の説明を挿入します
ここに画像の説明を挿入します

2. サービスを再起動し、ログインしてテストします

#重启服务
systemctl restart mysqld.service
#登录
mysql

ここに画像の説明を挿入します
3. update を使用して root パスワードを変更し、データベースを更新します。

#重设密码
update mysql.user set authentication_string = password('abc123') where user='root';
#刷新数据库
flush privileges;

ここに画像の説明を挿入します
4. ログアウトし、再度ログインしてテストします

mysql -uroot -pabc123

ここに画像の説明を挿入します
5. my.conf 設定ファイルを再度変更し、以前に追加した設定コマンドをコメント アウトするか削除します。
ここに画像の説明を挿入します

2. データベースのユーザー認証

2.1. 権限の付与

  • GRANT ステートメント: データベース ユーザーのアクセス許可を設定するために特に使用されます。指定したユーザー名が存在しない場合は GRANT ステートメントで新規ユーザーを作成し、指定したユーザー名が存在する場合は GRANT ステートメントを使用してユーザー情報を変更します。
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];
  • 権限リスト: 「選択、挿入、更新」など、使用が許可されているさまざまなデータベース操作をカンマで区切ってリストするために使用されます。すべての権限を示すには「all」を使用します。これにより、あらゆる操作の実行が許可されます。

  • データベース名.テーブル名: 認可操作用のデータベースとテーブルの名前を指定するために使用されます。ワイルドカード文字「」を使用できます。たとえば、「kgc.」を使用すると、認可操作のオブジェクトが kgc データベース内のすべてのテーブルであることを示します。

  • 「ユーザー名@ソースアドレス」: アクセスを許可されるユーザー名とクライアントアドレス、つまり誰がどこから接続できるかを指定するために使用されます。送信元アドレスは、ドメイン名、IP アドレス、または「%」ワイルドカード文字を使用して、「%.accp.com」、「192.168.80」など、特定のエリアまたはネットワーク セグメント内のすべてのアドレスを表すことができます。 %」など。

  • IDENTIFIED BY: ユーザーがデータベースに接続するために使用するパスワード文字列を設定するために使用されます。新規ユーザー作成時に「IDENTIFIED BY」の部分を省略した場合、ユーザーのパスワードは空白になります。

例: ユーザー DM は、ali データベース内のすべてのテーブルのデータ レコードをローカルでクエリすることが許可されていますが、他のデータベース内のテーブルのレコードをクエリすることは禁止されています。

#切换mysql库
use mysql;
#查看用户
select User,authentication_string,Host from user;
#授权lilade用户
 grant select on mysql.user to 'lilade'@'localhost' identified by 'abc123';


ここに画像の説明を挿入します
ログインしてライブラリを表示する

#登录创建的库
mysql -lilade -pabc123
#查看数据库,表,结构
show databases;
use mysql;
show tables;
select * from user;

ここに画像の説明を挿入します
ここに画像の説明を挿入します

2.2. 表示権限

SHOW GRANTS FOR 用户名@来源地址;
show grants for 'lilade'@'localhost';

ここに画像の説明を挿入します

2.3. ユーザー権限の取り消し

#在root用户登录
mysql -uroot -pabc123
#查看lilade用户权限
show grants for 'lilade'@'localhost';
#撤销lilade用户查询权限
revoke select on mysql.* from 'lilade'@'localhost';

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/fyb012811/article/details/133191297