mysql创建用户,并给用户授权

创建用户

CREATE USER 'userName'@'IP' IDENTIFIED BY 'password';

说明:
userName:新建用户的用户名;
IP:指定此用户可以在哪些ip登录本数据库,如果设置为所有地方都可以登陆则将IP替换为‘%’,
password:此新建用户的登录密码;

为root用户添加远程grant权限

查询root用户的权限
SELECT * FROM mysql.`user`

如果下图中“关键信息”为N,则需要执行下面“为root用户赋予远程grant权限”的sql
在这里插入图片描述

为root用户赋予远程grant权限
UPDATE mysql.user SET Grant_priv = 'Y' WHERE HOST='%' AND USER = 'root'
FLUSH PRIVILEGES;

给root用户添加给指定用户操作指定表的权限

查询root用户对指定表的grant权限
select * from mysql.tables_priv

看下图中table_priv列,是user、ip、table的权限数据,如果远程操作时host为%的root对某表的权限中包含grant,可以略过下一步“给root用户赋予grant指定表的权限”,否则需要执行下一步才能给指定用户赋予指定表的相关权限
在这里插入图片描述

给root用户赋予grant指定表的权限
insert into mysql.tables_priv VALUES
('%','数据库名','root','表名','root@%',SYSDATE(),'Select,Insert,Update,Delete,Grant','');
FLUSH PRIVILEGES;

说明:
上面代码中root指的是当前用户,当然当前用户必须是已经被赋予grant权限的用户才行;
root@%是指当前用户在那个ip做的此操作,%就是当前ip;
Select,Insert,Update,Delete,Grant:是被授予的权限,包括但不限于这几类,但是Grant必须有;

给指定用户赋予操作指定表的权限
GRANT SELECT,INSERT,UPDATE,DELETE ON 数据库名.表名 TO '用户名'@'ip';

说明:
上面代码中“SELECT,INSERT,UPDATE,DELETE”只是所有权限中的几种,所有权限请看下图;
用户名’@'ip则是指被授权的用户的用户名以及被授权的ip,即该用户可以在那个ip下拥有上面被赋予的权限;

在这里插入图片描述如上图所示,一个表的权限有这么多种,通过navicat右键指定的表,然后选择设置权限即可看到上图;当然此时就可以通过点击“添加权限”按钮 为指定用户赋予指定的权限
在这里插入图片描述
创建用户只能访问指定库

CREATE DATABASE zhidingku;CREATE USER 'testuser'@'%' IDENTIFIED BY 'asd123';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 `zhidingku`.* TO 'testuser'@'%';GRANT GRANT OPTION ON `zhidingku`.* TO 'testuser'@'%';

上面创建了用户testuser,密码是asd123,用户接入数据库之后,只能对zhidingku这个库具有全部的访问权限,不能访问其他的数据库,有时候对一个Mysql实例需要分开创建若干个库,不同的人员只能访问其对应得数据库,这样就能排上用场了;


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部