Mysql中的用戶 user 每一個user都對應了不同的用戶地址和權限
創建Mysql用戶共有三種方式1、create user 2、grant 3、操作mysql.user表
1、CREATE USER 'username'@'host' IDENTIFIED BY 'password';
例子: CREATE USER 'aa'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'aa'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'aa'@'%' IDENTIFIED BY '123456';
CREATE USER 'bb'@'%' IDENTIFIED BY '';
CREATE USER 'cc'@'%';
用戶有兩個部分組成 格式:名字@主機
aa@localhost 本機發起鏈接的aa用戶
[email protected] 客戶端地址為152.236.20.10的用戶bb
cc@% %通配符,表示所有
2、使用grant語句(授權方式)
語法:mysql> grant 權限1,權限2,...權限n on 數據庫名稱.表名稱 to 用戶名@用戶地址 identified by '連接口令';
權限1,權限2,...權限n代表
select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14個權限
實例:
mysql>grant select,insert,update,delete,create,drop on vtdc.employee to [email protected] identified by '123';
給來自10.163.225.87的用戶joe分配可對數據庫vtdc的employee表進行select,insert,update,delete,create,drop等操作的權限,並設定口令為123。
mysql>grant all privileges on vtdc.* to [email protected] identified by '123';
給來自10.163.225.87的用戶joe分配可對數據庫vtdc所有表進行所有操作的權限,並設定口令為123。
mysql>grant all privileges on *.* to [email protected] identified by '123';
給來自10.163.225.87的用戶joe分配可對所有數據庫的所有表進行所有操作的權限,並設定口令為123。
mysql>grant all privileges on *.* to joe@localhost identified by '123';
給本機用戶joe分配可對所有數據庫的所有表進行所有操作的權限,並設定口令為123。
3、直接向mysql.user表插入記錄:
mysql> insert into user (host,user,password) values ('%','jss_insert',password('jss'));
mysql>flush privileges; //刷新系統權限表
修改用戶密碼:1、mysqladmin 2、修改mysql.user表 3、set password
1、 使用mysqladmin語法:mysqladmin -u用戶名 -p舊密碼 password 新密碼
例如:mysqladmin -u root -p 123 password 456;
2、 直接修改user表的用戶口令:
語法:update mysql.user set password=password('新密碼') where User="phplamp" and Host="localhost";
實例:update user set password=password('54netseek') where user='root';
flush privileges;
3、使用SET PASSWORD語句修改密碼:語法:
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是當前登陸用戶用SET PASSWORD = PASSWORD("newpassword");
實例:
set password for root@localhost=password('');
SET PASSWORD FOR name=PASSWORD('new password');
SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");
刪除用戶和撤銷權限:1、drop user 2、取消授權用戶 3、刪除mysql.user表中的記錄
1、 取消一個賬戶和其權限
Drop USER user;
drop user username@'%'
drop user username@localhost
2、 取消授權用戶:
語法:REVOKE privilege ON databasename.tablename FROM 'username'@'host';
例子: REVOKE SELECT ON *.* FROM 'pig'@'%';
REVOKE SELECT ON test.user FROM 'pig'@'%';
revoke all on *.* from sss@localhost ;
revoke all on user.* from 'admin'@'%';
SHOW GRANTS FOR 'pig'@'%'; //查看授權
3、刪除用戶:
語法: Delete from user where user = "user_name" and host = "host_name" ;
例子:delete from user where user='sss' and host='localhost';
參考博文:http://blog.csdn.net/leili0806/article/details/8573636