查看linux mysql 账户权限设置_Linux下mysql新建账号及权限设置各种方式总结
來自:http://justcoding.iteye.com/blog/1941116
1、權限賦予
說明:mysql部署在服務器A上,內網上主機B通過客戶端工具連接服務器A以進行數據庫操作,需要服務器A賦予主機B操作mysql的權限
mysql服務的啟動和停止
net stop mysql
net start mysql
1.1 在服務器A上進入mysql,假設在服務器A上mysql的賬戶是root:
mysql?-u?root?-p
然后回車鍵入密碼!
1.2 賦予主機B操作數據庫的權限
mysql>?grant?usage?on?*.*?to?username@192.168.0.1?identified?by?'password';
說明:賦予username@192.168.0.1?使用所有數據庫的權限,在主機192.168.0.1上使用username賬戶登錄,密碼為:password
mysql>?grant?usage?on?*.*?to?username?identified?by?'password';
說明:賦予username使用所有數據庫的權限,在所有主機上使用username賬戶登錄,密碼為:password
mysql>?grant?all?privileges?on?newdb.*?to?username@192.168.0.1;
說明:賦予username@192.168.0.1 操作數據庫newdb的最高權限,在主機192.168.0.1上使用username賬戶登錄,無密碼
mysql>?grant?all?privileges?on?*.*?to?root@192.168.0.1?identified?by?'123456'?;
說明:賦予root@192.168.0.1?使用所有數據庫的權限,在主機192.168.0.1上使用root賬戶登錄,密碼為:123456
2、移除賬號
mysql>?drop?user?root@192.168.0.1;
說明:移除賬戶root,這樣,主機192.168.0.1就不再可以使用root用戶操作服務器A上的數據庫
來源:http://www.cnblogs.com/eczhou/archive/2012/07/12/2588187.html
mysql中授權命令grant用法詳解
mysql中授權命令grant用法詳解:
mysql中可以給你一個用戶授予如select,insert,update,delete等其中的一個或者多個權限,主要使用grant命令,用法格式為:?grant 權限 on 數據庫對象 to 用戶
一、grant 普通數據用戶,查詢、插入、更新、刪除 數據庫中所有表數據的權利。
grant select on testdb.* to common_user@’%’grant insert on testdb.* to common_user@’%’grant update on testdb.* to common_user@’%’grant delete on testdb.* to common_user@’%’
或者,用一條 MySQL 命令來替代:
grant select, insert, update, delete on testdb.* to common_user@’%’
二、grant 數據庫開發人員,創建表、索引、視圖、存儲過程、函數。。。等權限。
1. grant 創建、修改、刪除 MySQL 數據表結構權限。
grant create on testdb.* to developer@’192.168.0.%’;grant alter on testdb.* to developer@’192.168.0.%’;grant drop on testdb.* to developer@’192.168.0.%’;
2. grant 操作 MySQL 外鍵權限。
grant references on testdb.* to developer@’192.168.0.%’;
3. grant 操作 MySQL 臨時表權限。
grant create temporary tables on testdb.* to developer@’192.168.0.%’;
4. grant 操作 MySQL 索引權限。
grant index on testdb.* to developer@’192.168.0.%’;
5. grant 操作 MySQL 視圖、查看視圖源代碼 權限。
grant create view on testdb.* to developer@’192.168.0.%’;grant show view on testdb.* to developer@’192.168.0.%’;
6. grant 操作 MySQL 存儲過程、函數 權限。
grant create routine on testdb.* to developer@’192.168.0.%’; --now, can show procedure status
grant alter routine on testdb.* to developer@’192.168.0.%’; --now, you can drop a procedure
grant execute on testdb.* to developer@’192.168.0.%’;
三、grant 普通 DBA 管理某個 MySQL 數據庫的權限。
grant all privileges on testdb to dba@’localhost’
其中,關鍵字 “privileges” 可以省略。
四、grant 高級 DBA 管理 MySQL 中所有數據庫的權限。
grant all on *.* to dba@’localhost’
五、MySQL grant 權限,分別可以作用在多個層次上。
1. grant 作用在整個 MySQL 服務器上:
grant select on *.* to dba@localhost; --dba 可以查詢 MySQL 中所有數據庫中的表。
grant all on *.* to dba@localhost; --dba 可以管理 MySQL 中的所有數據庫
2. grant 作用在單個數據庫上:
grant select on testdb.* to dba@localhost; --dba 可以查詢 testdb 中的表。
3. grant 作用在單個數據表上:
grant select, insert, update, delete on testdb.orders to dba@localhost;
4. grant 作用在表中的列上:
grant select(id, se, rank) on testdb.apache_log to dba@localhost;
5. grant 作用在存儲過程、函數上:
grant execute on procedure testdb.pr_add to’dba’@’localhost’grant execute on function testdb.fn_add to ’dba’@’localhost’
六、查看 MySQL 用戶權限
查看所有當前用戶
select * from mysql.user;
也可以進入到mysql,切換數據庫到mysql下,使用:use mysql;
然后就可以查看了,在這里保存了一張表user,里面保存的是用戶信息,使用:
select * from user;
SELECT DISTINCT CONCAT('User:''',user,'''@''',host,''';') AS query FROM mysql.user; //這樣查看比較方便
或者只查看Ip和用戶名
select Host,User from user;
1. 查看當前用戶(自己)權限:
show grants;
2. 查看其他 MySQL 用戶權限:
show grants for dba@localhost;
七、撤銷已經賦予給 MySQL 用戶權限的權限。
revoke 跟 grant 的語法差不多,只需要把關鍵字 “to” 換成 “from” 即可:
grant all on *.* to dba@localhost;revoke all on *.* from dba@localhost;
八、MySQL grant、revoke 用戶權限注意事項
1. grant, revoke 用戶權限后,該用戶只有重新連接 MySQL 數據庫,權限才能生效。
2. 如果想讓授權的用戶,也可以將這些權限 grant 給其他用戶,需要選項 “grant option“
grant select on testdb.* to dba@localhost with grant option;
這個特性一般用不到。實際中,數據庫權限最好由 DBA 來統一管理。
************************************************************
1,Mysql下創建新的用戶
方式一:
1.create user 用戶名 identified by '密碼';
例:
create user xiaogang identified by '123456';
新創建的用戶,默認情況下是沒有任何權限的。
或者
新建普通用戶
CREATE USER 'jeffrey'@'localhost' identified BY 'mypass';
用戶名部分為“jeffrey”,主機名默認為“%”(即對所有主機開放權限)
如果指定用戶登錄不需要密碼,則可以省略identified BY部分
方式二:
//創建用戶
mysql> insert into mysql.user(Host,User,Password) values(‘localhost’,'jeecn’,password(‘jeecn’));
//刷新系統權限表
mysql>flush privileges;
這樣就創建了一個名為:jeecn? 密碼為:jeecn? 的用戶。
2. 如何給用戶分配權限
語法:
1.grant 權限 on?數據庫.數據表 to '用戶' @ '主機名';
例:給 xiaogang 分配所有的權限
grant all on *.* to 'xiaogang'@'%';
這個時候 xiaogang 就擁有了 所有權限了
3 如何更精準的控制用戶的權限呢?
1.grant 權限 on?數據庫.數據表 to '用戶' @ '主機名';
例:讓 xiaogang 有查詢 tmp 數據庫 tmp1 表的權限;
grant select on temp.temp1 to 'xiaogang'@'%'; //這個時候 xiaogang 就具有查詢temp小的temp1的權限了。
************************************************************
mysql授權表共有5個表:user、db、host、tables_priv和columns_priv。
授權表的內容有如下用途:
user表
user表列出可以連接服務器的用戶及其口令,并且它指定他們有哪種全局(超級用戶)權限。在user表啟用的任何權限均是全局權限,并適用于所有數據庫。例如,如果你啟用了DELETE權限,在這里列出的用戶可以從任何表中刪除記錄,所以在你這樣做之前要認真考慮。
db表
db表列出數據庫,而用戶有權限訪問它們。在這里指定的權限適用于一個數據庫中的所有表。
host表
host表與db表結合使用在一個較好層次上控制特定主機對數據庫的訪問權限,這可能比單獨使用db好些。這個表不受GRANT和REVOKE語句的影響,所以,你可能發覺你根本不是用它。
tables_priv表
tables_priv表指定表級權限,在這里指定的一個權限適用于一個表的所有列。
columns_priv表
columns_priv表指定列級權限。這里指定的權限適用于一個表的特定列。
刪除用戶
@>mysql -u root -p
@>密碼
mysql>Delete FROM user Where User='test' and Host='localhost';
mysql>flush privileges;
mysql>drop database testDB; //刪除用戶的數據庫
刪除賬戶及權限:>drop user 用戶名@'%';
>drop user 用戶名@?localhost;
設置最大連接數
因為項目組連接數據庫總是報連接數太多,所以需要把連接數改大。
顯示當前運行的Query:mysql> show processlist
通常,mysql的最大連接數默認是100, 最大可以達到16384。
1、查看最大連接數:
show variables like '%max_connections%';
2、修改最大連接數
方法一:修改配置文件。推薦方法一
進入MySQL安裝目錄 打開MySQL配置文件 my.ini(Windows下) 或 my.cnf查找 max_connections=100 修改或添加為 max_connections=1000 服務里重起MySQL即可.
修改連接數:
[root@localhost ~]#?vi /etc/my.cnf
在[mysqld]中加入:
set-variable=max_connections=1000
目錄在etc下面
方法二:命令行修改。不推薦方法二
命令行登錄MySQL后。設置新的MySQL最大連接數為1024:
MySQL> set global max_connections=1024;
這種方式有個問題,就是設置的最大連接數只在mysql當前服務進程有效,一旦mysql重啟,又會恢復到初始狀態。因為mysql啟動后的初始化工作是從其配置文件中讀取數據的,而這種方式沒有對其配置文件做更改。
linux下如何啟動/停止/重啟mysql:
啟動:service mysqld start
停止:service mysqld stop
重啟:service mysqld restart
總結
以上是生活随笔為你收集整理的查看linux mysql 账户权限设置_Linux下mysql新建账号及权限设置各种方式总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存管理vma_(十三)Linux内存管
- 下一篇: centos mysql 端口_Linu