1. 程式人生 > >ubuntu14.04 mysql使用者許可權操作實錄

ubuntu14.04 mysql使用者許可權操作實錄

1.系統環境

ubuntu server 14.04

2.mysql

安裝ubuntu時,自帶的mysql

3.啟動mysql

方式一:sudo /etc/init.d/mysql start

方式二:sudo start mysql 方式三:sudo service mysql start(未實驗) 4.停止mysql: 方式一:sudo /etc/init.d/mysql stop  方式二:sudo stop mysql 方式三:sudo service mysql stop(未實驗) 重啟mysql: 方式一:sudo/etc/init.d/mysql restart 方式二:sudo restart mysql 方式三:sudo service mysql restart(未實驗)
5.登入mysql 進入sudo vim /etc/mysql/debian.cnf 這個檔案裡有初始使用者名稱,密碼 6.增加使用者 grant all on *.* to 使用者名稱@"%" identified by '密碼'
第一個星號:資料庫名
第二個星號:表名
%:表示所有ip均可訪問,如果把%換成"192.168.11.11",那麼就只有通過192.168.11.11連線mysql,才能訪問mysql
flush privileges; (重新整理修改)
舉個例子:
grant all on bolo.* to [email protected]"%" identified by '123';
flush privileges;
之行之後,
mysql -h(mysql的ip) -p3306 -usim -p123
可以登入mysql,但是showdatabases後,只能看到下面的內容
mysql> use bolo;
Database changed
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bolo               |
+--------------------+
也就是說,sim這個使用者,只有bolo這個資料庫的許可權

7.修改使用者許可權
怎麼才能讓sim這個使用者看到更多的資料庫呢?比如可以看見mysql庫,和performance_schema庫
當然,我們可以在一開始就執行
grant all on *.* to [email protected]"%" identified by '123';
flush privileges;
注意,我把 bolo.* 改成了 *.*
接下來,再次登入資料庫
mysql -h(mysql的ip) -p3306 -usim -p123
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bolo               |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
可以看到,sim使用者可以看到所有的庫了,很厲害吧


但是我覺得這樣操作不方便,我更傾向直接修改資料庫中控制權限的表資料,下面來操作
首先,我們用/etc/mysql/debian.cnf檔案中的使用者登入mysql
這個使用者很厲害,許可權很高,登入進入之後執行
show databases 可以看到所有庫
use mysql;
select Host, User, Password from user;
會看到剛才增加的sim使用者
mysql> select Host, Db, User from db;
+------+---------+---------+
| Host | Db      | User    |
+------+---------+---------+
| %    | %       | root    |
| %    | bolo    | sim     |
+------+---------+---------+
可以看到sim這個使用者對應的資料庫時bolo,那麼我們只需要把sim的Db欄位值改成%就可以讓sim使用者操作所有的庫了
update db set Db='%' where User = 'sim';
flush privileges;
再檢視下db表的內容 mysql> select Host, Db, User from db;
+------+---------+---------+
| Host | Db      | User    |
+------+---------+---------+
| %    | %       | root    |
| %    | %       | sim     |
+------+---------+---------+

這樣,再次用sim使用者登入mysql,就可以看到所有的資料庫
mysql -h(mysql的ip) -p3306 -usim -p123
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bolo               |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
8.修改使用者密碼

如何修改使用者密碼呢?
很簡單呀,改記得剛才的select Host, User, Password from user;嗎
那麼只要

update User set Password='新密碼' where User='sim';

就闊以啦