利用 GRANT 语句进行授权.
具体步骤如下:
①.、首先使用一个没有权限的账号链接mysql,成功之后执行:show databases;这时会发现没有权限的用户只能看到一个数据库,mysql和test等数据库是看不到的;
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;
这里只说使用GRANT语句的方法,当然还有直接修改MySQL表的方法,不过很麻烦,用的人不多~
前提是有MySQL root权限
例子:建立另一个超级用户(所有权限)的方法
*.* 中第一个星星是数据库名(*为所有数据库),第二个星星是表名(*为前面数据库下的所有表)
ALL 是指全部语句的操作权限(经常看到虚拟主机等的用户没有DROP权限,就是这里做了手脚)
语法大概就是这样吧.
查看用户权限
mysql show grants for zx_root;
赋予权限
mysql grant select on dmc_db.* to zx_root;
回收权限
mysql revoke select on dmc_db.* from zx_root; //如果权限不存在会报错
设置权限时必须给出一下信息
①.,要授予的权限
grant和revoke可以在几个层次上控制访问权限
①.,整个服务器,使用 grant ALL 和revoke ALL
MySQL基础知识第一期,如何远程访问MySQL数据库设置权限方法总结,讨论访问单个数据库,全部数据库,指定用户访问,设置访问密码,指定访问主机.
①.,设置访问单个数据库权限
复制代码
代码如下:
mysqlgrant
all
privileges
on
test.*
to
'root'@'%';
说明:设置用户名为root,密码为空,可访问数据库test
*.*
说明:设置用户名为root,密码为空,可访问所有数据库*
'liuhui'@'%';
说明:设置指定用户名为liuhui,密码为空,可访问所有数据库*
'liuhui'@'%'
IDENTIFIED
BY
'liuhui';
说明:设置指定用户名为liuhui,密码为liuhui,可访问所有数据库*
还可以设置指定访问某个数据库下的某个数据表,请继续关注MySQL基础知识系列.
用户管理
mysqluse mysql;
查看
mysql select host,user,password from user ;
创建
mysql create user zx_root IDENTIFIED by 'xxxxx'; //identified by 会将纯文本密码加密作为散列值存储
修改
删除
更改密码
mysql set password for zx_root =password('xxxxxx');
mysql update mysql.user set password=password('xxxx') where user='otheruser'
背景
在了解动态权限之前,我们先回顾下 MySQL 的权限列表.
图 1- MySQL 静态权限的权限管理图
那我们看到其实动态权限就是对 SUPER 权限的细分. SUPER 权限在未来将会被废弃掉.
我们来看个简单的例子,
但是现在我只想这个用户有 SUPER 的子集,设置变量的权限.那么单独给这个用户赋予两个能设置系统变量的动态权限,完了把 SUPER 给拿掉.
我们看到这个 WARNINGS 提示 SUPER 已经废弃了.
mysql show warnings;
+---------+------+----------------------------------------------+
| Level ? | Code | Message ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|
①. row in set (0.00 sec)+
+-----------------------------------------------------------------------------------+
以上就是土嘎嘎小编为大家整理的怎么给mysql设置权限相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!