ホームページ  >  記事  >  運用・保守  >  Linux で MySQL データベースを安全に構成する方法

Linux で MySQL データベースを安全に構成する方法

青灯夜游
青灯夜游転載
2019-03-28 11:33:533164ブラウズ

この記事の内容は、Linux で Mysql データベースを安全に設定する方法を紹介するものです。一定の参考値があります。必要な友人は参考にしてください。お役に立てれば幸いです。

ディレクトリ:

1. mysql 管理者アカウント root のパスワードを変更します ( 2 方法)

2.mysql 管理者アカウント root を変更します

## 3 .Mysql 管理者 root アカウントのパスワードを忘れた場合の解決策 (2 つの方法)

4.

データベース ユーザーの作成 (3 つの方法)

5.

mysql データベース権限管理

ローカル権限

ネットワーク権限

# 権限の取り消し

ユーザーの削除

## 1. mysql 管理者アカウント root

# のパスワードを変更します。

方法 1: シェル コマンド

mysqladmin  -u  root  -p  password  "123"

2.パスワードが保存されているテーブルを表示します

#方法 2: mysql データベース コマンド

mysql>use mysql;
mysql>update user set password=password('123') where user='root' and host='localhost';
mysql> FLUSH PRIVILEGES;        #刷新

パスワードの変更が成功したかどうかをテストします

#2. mysql 管理者アカウント root を変更します

##

update mysql.user set user="admin" where user="root" and host="localhost";
flush privileges;

#テスト

3. Mysql管理者のrootアカウントのパスワードを忘れました

方法 1:

#

killall -TERM mysqld
mysqld_safe --skip-grant-tables &
mysql -u admin 
mysql>update user set password=password('123456') where user='admin' and host='localhost';
mysql> FLUSH PRIVILEGES;
MySQL> quit

MySQL を再起動し、新しいパスワードでログインします

##新しいパスワードを設定して更新します

テスト、mysqld サービスを再起動し、新しいパスワードでログインします

方法 2:

Modify/etc/my.cnf

[Mysqld] の下に追加:

skip-grant-tables

MySQL サービスを再起動

mysql -u root
mysql>update user set password=password('123') where user='admin' and host='localhost';
mysql> FLUSH PRIVILEGES;
MySQL> quit
/etc/my.cnf を変更します。skip-grant-tables を削除します。

再起動します。 MySQL、新しいパスワードを使用してログインします

テスト

/etc/my.cnf を変更します 削除Skip- Grant-tables

MySQL を再起動し、新しいパスワードでログインします

4. データベース ユーザーの作成

#方法 1:

INSERT INTO user(host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'yuzly', PASSWORD('yuzly'), 'Y', 'Y', 'Y');

#方法 2:

CREATE  USER  'user1'@'localhost'  IDENTIFIED  BY 'yuzly';

  

方法三:通过新用户授权创建数据库用户

  

五、权限管理

本地权限

1.创建一个zhang用户,只给select权限,然后查看权限

 

2.登录zhang用户,mysql -uzhang -pyuzly测试,创建一个表,下图显示被拒绝,当前账户没有create权限

  

3.登录管理员账户,给zhangsan账户添加create权限

  

4.重新登录zhangsan账户,测试是否具有create权限,下图说明具有create权限

  

5.插入一条数据,下图提示没有insert权限

 

6.登录管理员账户,给zhangsan账户添加insert权限

  

7.重新登录zhangsan账户,测试是否具有insert权限,下图说明具有insert权限

  

8.创建的新用户,默认没有任何权限,下图可以看到创建的用户默认是没有任何权限的

  

9.登录新创建的用户mysql -uabcd -pyuzly,测试,下图可以看到abcd没有select等权限,用show只能查看mysql系统自带的东西,别的用户创建的数据库等看不到

  

远程连接权限

 1.创建一个账户,赋予远程登录权限

grant all on userdb.* to 'abc'@'10.10.10.200' identified by 'yuzly';
flush privileges;

 

2.测试,从另一台Linux的Mysql客户端登录验证

  

3.下图可以看到,abc用户对userdb数据库具有任何权限,但对别的数据库没有任何权限,例如mysql.user

  

4.远程连接限制一个网段

  

5.测试

  

撤销权限

revoke all on userdb.* from 'zhangsan'@'localhost';

  

测试,撤消zhangsan账户的权限是否生效

   

删除账户

delete from mysql.user where user="aaa" and host="localhost";

  

相关视频教程推荐:《MySQL教程

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

以上がLinux で MySQL データベースを安全に構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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