ホームページ  >  記事  >  データベース  >  MySQL でのユーザー作成と権限管理の概要と共有

MySQL でのユーザー作成と権限管理の概要と共有

WBOY
WBOY転載
2022-09-02 16:59:462027ブラウズ

推奨学習: mysql ビデオ チュートリアル

1. ユーザー管理

atmysqlライブラリには user テーブルがあります 作成したユーザーを表示できます

1. MySQL ユーザーを作成します

注: MySQL では使用できません ユーザー名だけでユーザーを記述するには、ホストを追加する必要があります。例: hhy@10.1.1.1

基本構文:

mysql> create user '用户名'@'被允许连接的主机名称或主机的IP地址' identified by '用户密码';
mysql> select user,host from mysql.user;

ケース: MySQL アカウントの作成、ユーザー名: hhy、ユーザー パスワード: 123

mysql> create user 'hhy'@'localhost' identified by '123';
/*或*/
mysql> create user 'hhy'@'127.0.0.1' identified by '123';

ケース: MySQL アカウントを作成します (リモート接続を開く必要があります)、ホスト IP アドレス: 192.1668.44.110、ユーザー名: test、ユーザー パスワード:123

mysql> create user 'test'@'192.1668.44.110' identified by '123';

テスト:IP アドレス 192.168.44.110

# yum install mysql -y
# mysql -h 192.168.44.110 -P 3306 -uharry -p
Enter password:123

のホスト上でオプションの説明:192.168.44.110: MySQL サーバー側 IPアドレス

yum インストール mysql: はインストールされている MySQL クライアントを表します
yum インストール mysql-server: は MySQL サーバー側のインストールを表します

ケース:MySQL アカウントを作成します (リモート接続を開く必要があります)、ホスト IP ネットワーク セグメント: 10.1.1.0、ユーザー名: jack、ユーザー パスワード: 123

create user 'jack'@'192.168.44.%' identified by '123'

ケース: MySQL アカウントを作成します (リモート接続を開く必要があります) (すべてのホストに対して開く必要があります)、ユーザー名: root、ユーザー パスワード: 123

create user 'root'@'%' identified by '123';

2. 削除します。 MySQL ユーザー

Basic user:

mysql>drop user 'username'@'host name or IP address of host';

特記事項:

ユーザーを削除するときにホスト名またはホストの IP アドレスを指定しない場合、デフォルトではこのアカウントに関するすべての情報が削除されます。

ケース: アカウント hhy を削除します

drop user 'hhy'@'localhost';

ケース: アカウント jack を削除します

drop user 'jack'@'192.168.44.%';

ケース:2 つの harry アカウント (localhost/10.1.1.23) を作成し、そのうちの 1 つを削除します

mysql> create user 'harry'@'localhost' identified by '123';
mysql> create user 'harry'@'192.168.44.110' identified 

mysql> drop user 'harry'@'192.168.44.110';

MySQL アカウントを削除する別の方法

mysql> delete from mysql.user where user='root' and host='%';
mysql> flush privileges;

3. MySQL ユーザーを変更します

特記事項: MySQL ユーザーの名前変更では、通常 2 つの部分が変更されます。1 つはユーザーの名前で、もう 1 つはアクセスを許可されるホストのホスト名または IP アドレスです。

基本構文:

mysql> rename user 旧用户信息 to 新用户信息;

ケース: ユーザー 'root'@'%' を 'root'@'10.1.1. % に変更します。 '

mysql> rename user 'root'@'%' to 'root'@'10.1.1.%';

ケース: 'harry'@'localhost' の名前を 'hhy'@'localhost'に変更します'

mysql> create user 'tom'@'localhost' identified by '123';
mysql> rename user 'tom'@'localhost' to 'hhy'@'localhost';

更新ステートメントを使用してユーザー情報を更新します

mysql> update mysql.user set user='hhy',host='localhost' where user='tom' and host='localhost';

mysql> flush privileges;

2. 権限管理

1. 権限の説明

すべての権限の説明

USAGE	无权限,只有登录数据库,只可以使用test或test_*数据库
ALL		所有权限
以下权限为指定权限
select/update/delete/super/replication slave/reload...
with grant option 选项表示允许把自己的权限授予其它用户或者从其他用户收回自己的权限

デフォルトでは、権限を割り当てるときに with Grant オプションが指定されていない場合、 , このユーザーは他のユーザーにアクセス許可を付与できないが、このアクセス許可の割り当てが自身のアクセス許可を超えることはできないことを意味します。

2. 権限の保存場所 (理解)

  • mysql.user:すべての mysql ユーザーのアカウント番号とパスワード、およびデータベース全体へのユーザーのアクセス テーブル権限 (*.*)
  • mysql.db:非 mysql ライブラリの権限はここに保存されます (db.*)
  • mysql.table_priv: 特定のデータベースの特定のテーブルの認可 (db.table)
  • mysql.columns_priv :データベースの特定のテーブルの特定のカラムの認可特定のデータベース (db.table.col1)
  • mysql.procs_priv :特定のライブラリ内のストアド プロシージャの認可

3. ユーザーの認可

データベース テーブルの作成:

create database java;
use java;
create table tb_student(
	id mediumint not null auto_increment,
	name varchar(20),
	age tinyint unsigned default 0,
	gender enum('男','女'),
	address varchar(255),
	primary key(id)
) engine=innodb default charset=utf8;

insert into tb_student values (null,'刘备',33,'男','湖北省武汉市');
insert into tb_student values (null,'貂蝉',18,'女','湖南省长沙市');
insert into tb_student values (null,'关羽',32,'男','湖北省荆州市');
insert into tb_student values (null,'大乔',20,'女','河南省漯河市');
insert into tb_student values (null,'赵云',25,'男','河北省石家庄市');
insert into tb_student values (null,'小乔',18,'女','湖北省荆州市');

基本構文:

mysql> grant 权限1,权限2 on 库.表 to 用户@主机
mysql> grant 权限(列1,列2,...) on 库.表 to 用户@主机

ライブラリ。テーブル表現方法: *.* はすべてのデータを表しますすべてのデータベース内のテーブル、db_itheima.* は db_itheima データベース内のすべてのデータを表します。 テーブル db_itheima.tb_admin は、db_itheima データベース内の tb_admin テーブルを表します。

ケース: クエリ権限を割り当てるJava データベースをアカウントに割り当てます

mysql> grant select on java.* to 'hehanyu'@'192.168.44.%';

mysql> flush privileges;

ケース : java.tb_student データ テーブルへの権限を hehanyu アカウントに割り当てます (年齢フィールドの変更のみに必要です)

mysql> grant update(age) on java.tb_student to 'hehanyu'@'192.168.44.%';

mysql> flush privileges;

ケース: root@% アカウントを追加し、すべての権限を割り当てます

create user 'root'@'%' identified by '123';
grant all on *.* to 'root'@'%';
flush privileges;

4. ユーザー権限のクエリ

現在のユーザー権限のクエリ:

mysql> show grants;

他のユーザー権限のクエリ:

mysql> show grants for '用户名称'@'授权的主机名称或IP地址';

5. 付与オプション付きオプション

mysql> grant all on *.* to 'amy'@'10.1.1.%' identified by '123' with grant option;
mysql> grant all on *.* to 'harry'@'10.1.1.%' identified by '123';

上記のコマンドに示すように: amy には権限を付与する機能がありますが、harry には権限を付与する機能がありません。

付与認可に「付与オプション付き」オプションがない場合、他のユーザーを認可できません。

6.revoke して権限を回復します

基本構文:

revoke 权限 on 库.表 from 用户;
查看hehanyu用户权限
mysql> show grants for 'hehanyu'@'192.168.44.%';
撤消指定的权限
mysql> revoke update on java.tb_student from 'tom'@'192.168.44.%';
撤消所有的权限
mysql> revoke select on java.* from 'tom'@'192.168.44.%';

推荐学习:mysql视频教程

以上がMySQL でのユーザー作成と権限管理の概要と共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。