创建用户 testUser, 只允许此用户查看 dbtest库的task表;
#创建用户testUser, 密码12345,%表示所以机器,可以自行指定ip
CREATE USER 'testUser'@'%' IDENTIFIED BY '12345';
#给此用户分配task表的select权限
GRANT SELECT ON `dbtest`.task TO 'testUser'@'%';
#给此用户分配task表的全部权限
GRANT SELECT, INSERT, UPDATE, REFERENCES, DELETE, CREATE, DROP, ALTER, INDEX, TRIGGER, CREATE VIEW, SHOW VIEW, EXECUTE, ALTER ROUTINE, CREATE ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES, EVENT ON `dbtest`.task TO 'testUser'@'%';
#刷新
FLUSH PRIVILEGES;
#查看当前用户及权限
SELECT user,host FROM mysql.user;
CREATE DATABASE dbtest;
CREATE USER 'testUser'@'%' IDENTIFIED BY '123456';
GRANT SELECT, INSERT, UPDATE, REFERENCES, DELETE, CREATE, DROP, ALTER, INDEX, TRIGGER, CREATE VIEW, SHOW VIEW, EXECUTE, ALTER ROUTINE, CREATE ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES, EVENT ON `dbtest`.* TO 'testUser'@'%';
GRANT GRANT OPTION ON `dbtest`.* TO 'testUser'@'%';
上面创建了用户testUser,密码是123456,用户接入数据库之后,只能对dbtest这个库具有全部的访问权限,不能访问其他的数据库,有时候对一个Mysql实例需要分开创建若干个库,不同的人员只能访问其对应得数据库,这样就能排上用场了;
进入数据库
use mysql;
创建新用户
create user 用户名 identified by '密码';
设置权限
grant all on 数据库名.* to 用户名;
刷新权限
flush privileges;
过程可能报错
如果报错 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
参考MySQL8更改密码设置规则
使用Navict连接时可能报错 1215在这里插入图片描述
更改用户密码即可(%是用于远程连接,本地连接也可用localhost)
ALTER USER '用户名'@'%' IDENTIFIED WITH mysql_native_password BY 'mysql的密码';
刷新权限
flush privileges;
重新连接即可
MySQL设置用户只能访问某个表
用管理员登录MySQL,创建一个用户,名为webuser,密码123456,只能访问bbs数据库中的user表,并且对这个表的操作权限为:只能读和更改,其他一律不准做。
以下语句实现:
grant select,update on bbs.user to webuser@'%' identified by '123456'; --允许通过远程访问
grant select,update on bbs.user to webuser@'localhost' identified by '123456'; ---只允许本地访问。
1.创建用户,并授权SELECT查询权限,授权远程访问权限,注意,命令中username/password指用户名密码,请自己指定。若要限制仅指定IP可以使用此用户访问Mysql,将%改为具IP即可,dbname指定限制的数据库,如果是全部则改为*。
GRANT SELECT ON dbname.* TO 'username'@'%' IDENTIFIED BY "password";
2.刷新mysql权限,使用户创建、授权生效。
FLUSH PRIVILEGES;
privilege代表select,update,insert,delete还有存储过程,函数,执行等等的操作也可以用ALL代表所有。
------------------------------------------------
只能查某个数据库中的某张表(只读)
grant select on allindata_deb.user to lhz@% identified by 123456;
grant select on test.test to test@% identified by 123456;
------------------------------------------------
创建用户
create user 'discuz'@'localhost' identified by 'discuz';
更改用户访问数据库的权限
grant all on discuz.* to 'discuz'@'localhost';
更改非本机使用数据库用户连接数据库的权限的更改
update mysql.user set host='%' where host='localhost';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
删除权限
revoke privileges on databasename.tablename to 'username'@'host';
查看权限
show grants;