MySQL研究ノート。セキュリティ管理

ユーザー管理

ユーザーの追加と削除

1.ユーザーの追加
CREATEUSERを使用して、1人以上のユーザーを追加できます。
構文形式:CREATE USER '用户名' @'主机名' IDENTIFIED BY PASSWORD,USER '用户名' @'主机名' IDENTIFIED BY PASSWORD...

create user
'user001'@'localhost' identified by 'root', 
'user002'@'localhost' identified by 'root';

ここで2人のユーザーを作成します

mysql> create user'user001'@'localhost' identified by 'root', 'user002'@'localhost' identified by 'root';
Query OK, 0 rows affected (0.01 sec)

mysql> use mysql;
Database changed
mysql> select * from user;

ここに画像の説明を挿入

ここで作成、ユーザーuser001にログインしてみてくださいこのユーザー
ここに画像の説明を挿入
はログインしています
2.ユーザーの削除
構文形式:DROP USER 用户
ここでuser001ユーザーを削除します。
ここに画像の説明を挿入
このユーザーを削除するとエラーが発生します。ルートアカウントに戻るには、
ここに画像の説明を挿入
OKが正常に実行されています。ユーザーを削除しました

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

1.ユーザー名の変更
構文形式:rename user '用户名' @'主机名' to '新用户名' @'主机名';
ここでは、ユーザーuser002をuser001に変更します

mysql> rename user 'user002'@'localhost' to 'user001'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> use mysql;
Database changed
mysql> select * from user;

ここに画像の説明を挿入
変更が完了しました
2.ユーザーパスワードの変更
構文形式:set password for '用户名' @'主机名'=password('新密码');
ここでは、user001のパスワードをpythonに変更します

mysql> set password for 'user001'@'localhost' =password('python');
Query OK, 0 rows affected (0.00 sec)

mysql>

権限管理

許可された

付与される権限は次のとおり
です。1。列の権限:
テーブルの特定の列に関連します2.テーブルの権限:特定のテーブルのすべてのデータに関連します
3.データベースの権限:特定のデータベースのすべてのテーブルに関連します
4.ユーザーの権限:既存のデータベースの削除や新しいデータベース権限の作成など、すべてのMySQLデータベースに関連して、ここで
テーブル権限
ここに画像の説明を挿入
を付与してuser001select学生テーブル権限を付与します

mysql> grant select
    -> on student
    -> to user001@localhost;
Query OK, 0 rows affected (0.00 sec)

現時点では、user001ユーザーの下で、studentテーブルにクエリを実行して、
ここに画像の説明を挿入
列の権限付与できます
列の権限は、SELECT、INSERT、UPDATE、続いて列名のみを取得できます
。user001に更新権限を付与します。

mysql> grant update(sno,sname,sage)
    -> on student
    -> to user001@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> update student set sage=30 where sno='2018001001';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from student;
+------------+--------------+--------+------+-------+
| sno        | sname        | sex    | sage | sdept |
+------------+--------------+--------+------+-------+
| 2018001001 | zhangsan     | male   |   30 | cs    |
| 2018001002 | lisi         | female |   19 | MA    |
| 2018001003 | jack         | male   |   20 | CS    |
| 2018001004 | clinton      | male   |   21 | IS    |
| 2018001005 | trump        | male   |   19 | IS    |
| 2018001006 | putin        | male   |   20 | CS    |
| 2018001007 | starlin      | male   |   19 | MA    |
| 2018001008 | hilery       | female |   19 | IS    |
| 2018001009 | zhangming    | female |   20 | CS    |
| 2018001010 | ligang       | male   |   19 | MA    |
| 2018001011 | 令狐冲       | male   |   18 | cs    |
| 2018001012 | 任盈盈       | female |   19 | MA    |
| 2018001013 | 岳不群       | male   |   20 | CS    |
| 2018001014 | 余沧海       | male   |   21 | IS    |
| 2018001015 | 林平之       | male   |   19 | IS    |
| 2018001016 | 岳灵珊       | male   |   20 | CS    |
| 2018001017 | 朱元璋       | male   |   19 | MA    |
| 2018001018 | 郑成功       | female |   19 | IS    |
| 2018001019 | 爱新觉罗玄烨 | female |   20 | CS    |
| 2018001020 | 慈禧         | male   |   19 | MA    |
+------------+--------------+--------+------+-------+
20 rows in set (0.00 sec)

mysql> update student set sdept='MA' where sno='2018001001';
ERROR 1143 (42000): UPDATE command denied to user 'user001'@'localhost' for column 'sdept' in table 'student'
mysql>

user001update sdept権限が付与されていないため、
データベース権限付与するためのエラーが報告されます。
ここに画像の説明を挿入
データベースyingmo内のすべてのテーブルに対してuser001選択権限付与します
最初にyingmoデータベースに2つのテーブルを作成します。
ここに画像の説明を挿入

mysql> grant select
    -> on yingmo.*
    -> to user001@localhost;
Query OK, 0 rows affected (0.00 sec)

現時点では、user001ユーザーに表示さ
ここに画像の説明を挿入
れます。user001にすべてのyingmoデータベースのすべてのデータベース権限を付与します。

grant all
on * 
to user001@localhost;

ユーザー権限の
ここに画像の説明を挿入
付与データベース内のすべてのテーブルに対するuser001の作成、変更、および削除の権限を付与します

grant create,alter,drop
on *.*
to user001@localhost;

許可の転送と制限

mysql> grant select
    -> on yingmo.student
    -> to user001@localhost
    -> with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql>

ここで、select権限がuser001に付与され、ここでselect権限がuser002に渡され、この時点でuser002ユーザーが作成されます。

mysql> create user
    -> 'user002'@'localhost' identified by 'root';
Query OK, 0 rows affected (0.00 sec)

ここに画像の説明を挿入
ログインuser002ユーザー
ここに画像の説明を挿入
権限が転送されました
この転送方法には制限がないようですが、どのように制限しますか?
2時間ごとにselectステートメントを処理するようにuser002を制限するなど

mysql> grant select
    -> on yingmo.student
    -> to user002@localhost
    -> with max_queries_per_hour 2;
Query OK, 0 rows affected (0.00 sec)

ここに画像の説明を挿入

許可の再利用

学生テーブルに対するuser001の選択権限を再利用します

mysql> revoke select
    -> on student
    -> from user001@localhost;

使用する

mysql> revoke all privileges,grant option
    -> from user001@localhost;
Query OK, 0 rows affected (2.08 sec)


user001のすべての権限を再利用する現時点では、データベースyingmoはuser001ユーザーで表示できません。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_44862120/article/details/110288871