ユーザー管理
ユーザーの追加と削除
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ユーザーで表示できません。