mysql创建用户且只能访问指定数据库表

创建用户 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';  ---只允许本地访问。

mysql创建某个数据库中的某张表 只读用户

 

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;

你可能感兴趣的:(MYSQL主从,数据库,mysql,sql)