快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

mysql怎么加权限用 mysql怎么授权

mysql怎么给数据库添加权限

可以用phpMyAdmin通过输入语句的方法建立用户,或者一般的图形界面的SQL管理程序也可以建立和编辑用户.

创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、成都网站建设、襄汾网络推广、重庆小程序开发公司、襄汾网络营销、襄汾企业策划、襄汾品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供襄汾建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

这里只说使用GRANT语句的方法,当然还有直接修改MySQL表的方法,不过很麻烦,用的人不多~

前提是有MySQL root权限

例子:建立另一个超级用户(所有权限)的方法

GRANT ALL ON *.* TO username@localhost IDENTIFIED BY 'password' WITH GRANT OPTION

localhost是主机名,也可以是IP,用于限定这个用户是否可以远程连接.还可以用通配符"%",比如%.im286.com,或者202.97.224.%

*.* 中第一个星星是数据库名(*为所有数据库),第二个星星是表名(*为前面数据库下的所有表)

ALL 是指全部语句的操作权限(经常看到虚拟主机等的用户没有DROP权限,就是这里做了手脚)

语法大概就是这样吧.

mysql 权限设置

背景

在了解动态权限之前,我们先回顾下 MySQL 的权限列表。

权限列表大体分为服务级别和表级别,列级别以及大而广的角色(也是MySQL 8.0 新增)存储程序等权限。我们看到有一个特殊的 SUPER 权限,可以做好多个操作。比如 SET 变量,在从机重新指定相关主机信息以及清理二进制日志等。那这里可以看到,SUPER 有点太过强大,导致了仅仅想实现子权限变得十分困难,比如用户只能 SET 变量,其他的都不想要。那么 MySQL 8.0 之前没法实现,权限的细分不够明确,容易让非法用户钻空子。

那么 MySQL 8.0 把权限细分为静态权限和动态权限,下面我画了两张详细的区分图,图 1 为静态权限,图 2 为动态权限。

图 1- MySQL 静态权限的权限管理图

图 2-动态权限图

那我们看到其实动态权限就是对 SUPER 权限的细分。 SUPER 权限在未来将会被废弃掉。

我们来看个简单的例子,

比如, 用户 'ytt2@localhost', 有 SUPER 权限。

mysql show grants for ytt2@'localhost';+---------------------------------------------------------------------------------+| Grants for ytt2@localhost                                                       |+---------------------------------------------------------------------------------+| GRANT INSERT, UPDATE, DELETE, CREATE, ALTER, SUPER ON *.* TO ytt2@localhost |+---------------------------------------------------------------------------------+1 row in set (0.00 sec)

但是现在我只想这个用户有 SUPER 的子集,设置变量的权限。那么单独给这个用户赋予两个能设置系统变量的动态权限,完了把 SUPER 给拿掉。

mysql grant session_variables_admin,system_variables_admin on *.* to ytt2@'localhost';Query OK, 0 rows affected (0.03 sec)mysql revoke super on *.* from ytt2@'localhost';Query OK, 0 rows affected, 1 warning (0.02 sec)

我们看到这个 WARNINGS 提示 SUPER 已经废弃了。

mysql show warnings;

+---------+------+----------------------------------------------+

| Level   | Code | Message                                      |

+---------+------+----------------------------------------------+

| Warning | 1287 | The SUPER privilege identifier is deprecated |

+---------+------+----------------------------------------------+

1 row in set (0.00 sec)`

mysql show grants for ytt2@'localhost';

+-----------------------------------------------------------------------------------+

| Grants for ytt2@localhost                                                         |

+-----------------------------------------------------------------------------------+

| GRANT INSERT, UPDATE, DELETE, CREATE, ALTER ON *.* TO ytt2@localhost          |

| GRANT SESSION_VARIABLES_ADMIN,SYSTEM_VARIABLES_ADMIN ON *.* TO ytt2@localhost |

+-----------------------------------------------------------------------------------+

2 rows in set (0.00 sec)

当然图 2 上还有其它的动态权限,这里就不做特别说明了。

如何设置mysql用户的权限

用户管理

mysqluse mysql;

查看

mysql select host,user,password from user ;

创建

mysql create user zx_root IDENTIFIED by 'xxxxx'; //identified by 会将纯文本密码加密作为散列值存储

修改

mysqlrename user feng to newuser;//mysql 5之后可以使用,之前需要使用update 更新user表

删除

mysqldrop user newuser; //mysql5之前删除用户时必须先使用revoke 删除用户权限,然后删除用户,mysql5之后drop 命令可以删除用户的同时删除用户的相关权限

更改密码

mysql set password for zx_root =password('xxxxxx');

mysql update mysql.user set password=password('xxxx') where user='otheruser'

查看用户权限

mysql show grants for zx_root;

赋予权限

mysql grant select on dmc_db.* to zx_root;

回收权限

mysql revoke select on dmc_db.* from zx_root; //如果权限不存在会报错

如何设置Mysql root权限

利用 GRANT 语句进行授权。

具体步骤如下:

1、首先使用一个没有权限的账号链接mysql,成功之后执行:show databases;这时会发现没有权限的用户只能看到一个数据库,mysql和test等数据库是看不到的;

2、如果已经安装了phpmyadmin,打开127.0.0.1/phpmyadmin,在菜单栏找到用户,然后找到没有权限的用户,点击编辑权限;

3、跳转到设置页面,找到全局权限,在全选checkbox打勾,点击右下角的执行,完成后该用户就获得了mysql数据库的所有权限;

4、再次用该账号再次链接mysql,链接成功后执行:show databases;你会发现所有数据库都会显示出来,而且使用该账号可以进行任意编辑;

5、也可以直接在cmd窗口命令行设置,设置权限的命令为:

REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'localhost'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;


分享标题:mysql怎么加权限用 mysql怎么授权
文章来源:http://6mz.cn/article/ddoppip.html

其他资讯