扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
第1步:打开phpMyAdmin,点击菜单栏的【用户】按钮,进入用户管理页面。
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序设计、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了集美免费建站欢迎大家使用!
第2步:用户管理页面列出了现有用户信息,点击【添加用户】创建新用户。
第3步:输入用户名【User name】。有两个选项:任意用户、使用文本域,它们之间没有明显区别,推荐选择“使用文本域”,然后在文本框中输入用户名,如sky。
第4步:输入主机【Host】信息。这里有四个选项:任意主机(%)、本地( localhost)、使用主机表(host)、Use text field(即使用文本域)。
任意主机表示匹配所有主机;本地表示仅限本地主机(默认填写localhost);使用主机指以MySQL数据库中的host表中的数据为准,不需填写任何信息(如果填写则此选项无效);使用文本域表示自行填写主机地址信息。此处选择“本地”选项。
第5步:输入密码和Re-type(确认密码)。有两个选项:无密码、使用文本域。此处选择“使用文本域”,可以手动输入密码,也可以点击【生成】按钮,自动生成密码并在最下方文本框中显示。
第6步:为用户分配权限。权限管理分为两大块:用户数据库和全局权限。
用户数据库包括两个选项:创建与用户同名的数据库并授予所有权限;给以用户名_开通的数据库授予所有权限。可根据需要自行选择。此处两个都未选,仅创建新用户。
全局权限包括四部分:数据、结构、管理和资源限制。可根据需要自行选择。这里我选择了“全选”。
第7步:权限分配好后,点击右下角的【执行】按钮,执行创建新用户操作。
2. 编辑用户权限
第1步:进入phpMyAdmin用户管理页面,我们可以看到刚才创建的用户sky,如图所示。
第2步:点击用户sky对应的【编辑权限】按钮,进入编辑页面。
第3步:根据需要修改勾选权限选项后,点击【执行】按钮保存修改。
3. 修改用户信息
第1步:用户的用户名、主机、密码等信息的修改也在“编辑权限”页面。所以首先也要点击用户sky对应的【编辑权限】按钮,进入编辑页面。
第2步:修改用户信息主要涉及“修改密码”和“修改登录信息/复制用户”两块,分别填写相应内容,并点击对应的【执行】按钮完成操作即可。
4. 删除用户
第1步:进入phpMyAdmin用户管理页面,选中需要删除的用户,以sky为例。
第2步:点击右下角的【执行】按钮,删除用户sky。如果创建用户时选择了“创建与用户同名的数据库并授予所有权限”选项,则可以勾选【删除选中的用户】模块中的“删除与用户同名的数据库”,将数据库和用户一起删除。
MySQL基础知识第一期,如何远程访问MySQL数据库设置权限方法总结,讨论访问单个数据库,全部数据库,指定用户访问,设置访问密码,指定访问主机。
1,设置访问单个数据库权限
复制代码
代码如下:
mysqlgrant
all
privileges
on
test.*
to
'root'@'%';
说明:设置用户名为root,密码为空,可访问数据库test
2,设置访问全部数据库权限
复制代码
代码如下:
mysqlgrant
all
privileges
on
*.*
to
'root'@'%';
说明:设置用户名为root,密码为空,可访问所有数据库*
3,设置指定用户名访问权限
复制代码
代码如下:
mysqlgrant
all
privileges
on
*.*
to
'liuhui'@'%';
说明:设置指定用户名为liuhui,密码为空,可访问所有数据库*
4,设置密码访问权限
复制代码
代码如下:
mysqlgrant
all
privileges
on
*.*
to
'liuhui'@'%'
IDENTIFIED
BY
'liuhui';
说明:设置指定用户名为liuhui,密码为liuhui,可访问所有数据库*
5,设置指定可访问主机权限
复制代码
代码如下:
mysqlgrant
all
privileges
on
*.*
to
'liuhui'@'10.2.1.11';
说明:设置指定用户名为liuhui,可访问所有数据库*,只有10.2.1.11这台机器有权限访问
还可以设置指定访问某个数据库下的某个数据表,请继续关注MySQL基础知识系列。
利用 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;
用户管理
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” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称'%'。
或者新加条记录,“host” 项为要访问的ip地址,并授权。重启mysql服务。
第二:在系统防火墙添加例外端口:3306,并允许例外。错误提示:
ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server
的解决方法: 1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -pvmwaremysqluse mysql;mysqlupdate user set host = '%' where user = 'root';mysqlselect host, user from user; 2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
3.在window自带的防火墙里的例外添加3306端口
总结:mysql -u root -p
mysqluse mysql;
mysqlselect 'host' from user where user='root';
mysqlupdate user set host = '%' where user ='root';
mysqlflush privileges;
mysqlselect 'host' from user where user='root';
第一句是以权限用户root登录
第二句:选择mysql库
第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
第五句:刷新MySQL的系统权限相关表
第六句:再重新查看user表时,有修改。。
重起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 上还有其它的动态权限,这里就不做特别说明了。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流