简介:在数据库中一般来讲只是学习的话,那么都是用root账户来干一切事情的,然而root账户所具有的的权限又太大了。特别是当root允许远程连接,密码被暴力破解时,常常出现删库卖钱。这个时候,你可以禁用root远程登录,然后创建一些普通的用户,授予一些最最权限(增删改查)执行操作。
一、创建用户:
命令:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
说明:
- username:你将创建的用户名(16字符以内.)
- host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%(可以用主机名和IP地址,也可以用通配符)
- password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
例子:
CREATE USER 'user1'@'localhost' IDENTIFIED BY '123456';//user1只能在本地登录(localhsot),密码为 123456
CREATE USER 'user2'@'192.168.1.101_' IDENDIFIED BY '123456';//user2 可以在固定ip的地址上登录
CREATE USER 'user3'@'%' IDENTIFIED BY '123456'; //可以在任意远程电脑上登录
CREATE USER 'user4'@'%' IDENTIFIED BY '';//无需密码在远程登录
CREATE USER 'user5'@'%';//无需密码在远程登录
注:若创建出错:flush privileges; 再创建
二、授权
查看权限:
show grants for '用户'@'IP地址'
授予命令:
GRANT privileges ON databasename.tablename TO 'username'@'host'
说明:
- privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
- databasename:数据库名
- tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*
例子:
GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
GRANT ALL ON maindataplus.* TO 'pig'@'%';
删除权限:
revoke 权限 on 数据库.表 from '用户'@'IP地址';
注意:
用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令(类似于普通用户具有了root用户的一些权限):`
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
三、设置与更改用户密码
命令:
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是当前登陆用户用:
SET PASSWORD = PASSWORD("newpassword");
例子:
//将 user1 的密码修改为 123456 ,一般用root授权
SET PASSWORD FOR 'user1'@'%' = PASSWORD("123456");
修改用户名:
rename user '用户名'@'IP地址' to '新用户名'@'IP地址';
四、删除用户
命令:
DROP USER 'username'@'host';
授权表:
grant 权限 on 数据库.表 to '用户'@'IP地址';
//all privileges 除grant外的所有权限
select 仅查权限
select,insert 查和插入权限
...
usage 无访问权限
alter 使用alter table
alter routine 使用alter procedure和drop procedure
create 使用create table
create routine 使用create procedure
create temporary tables 使用create temporary tables
create user 使用create user、drop user、rename user和revoke all privileges
create view 使用create view
delete 使用delete
drop 使用drop table
execute 使用call和存储过程
file 使用select into outfile 和 load data infile
grant option 使用grant 和 revoke
index 使用index
insert 使用insert
lock tables 使用lock table
process 使用show full processlist
select 使用select
show databases 使用show databases
show view 使用show view
update 使用update
reload 使用flush
shutdown 使用mysqladmin shutdown(关闭MySQL)
super ??使用change master、kill、logs、purge、master和set global。还允许mysqladmin????调试登陆
replication client 服务器位置的访问
replication slave 由复制从属使用
// 数据库名.* 数据库中的所有
数据库名.表 指定数据库中的某张表
数据库名.存储过程 指定数据库中的存储过程
*.* 所有数据库
别白嫖,点个赞再走呗!!!