mysql中grant权限_mysql外网访问权限

mysql中grant权限_mysql外网访问权限mysql访问权限GRANT ALL PRIVILEGES ON,访问权限表

大家好,又见面了,我是你们的朋友全栈君。

 

 

 

 

开启远程连接:
2, 修改 Mysql-Server 用户配置
mysql> USE mysql; — 切换到 mysql DB
Database changed
mysql> SELECT User, Password, Host FROM user; — 查看现有用户,密码及允许连接的主机
+——+———-+———–+
| User | Password | Host      |
+——+———-+———–+
| root |          | localhost |
+——+———-+———–+
1 row in set (0.00 sec)
mysql> — 只有一个默认的 root 用户, 密码为空, 只允许 localhost 连接
12
mysql> — 下面我们另外添加一个新的 root 用户, 密码为空, 只允许 192.168.1.100 连接
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.1.100’ IDENTIFIED BY ” WITH GRANT OPTION;
mysql> — @’192.168.1.100’可以替换为@‘%’就可任意ip访问,当然我们也可以直接用 UPDATE 更新 root 用户 Host, 但不推荐, SQL如下:
mysql> — UPDATE user SET Host=’192.168.1.100′ WHERE User=’root’ AND Host=’localhost’ LIMIT 1;
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

 

 

 

如何远程访问MySQL数据库设置权限方法总结,讨论访问单个数据库,全部数据库,指定用户访问,设置访问密码,指定访问主机。
1,设置访问单个数据库权限
mysql>grant all privileges on test.* to ‘root’@’%’;
说明:设置用户名为root,密码为空,可访问数据库test

2,设置访问全部数据库权限
mysql>grant all privileges on *.* to ‘root’@’%’;
说明:设置用户名为root,密码为空,可访问所有数据库*

3,设置指定用户名访问权限
mysql>grant all privileges on *.* to ‘liuhui’@’%’;
说明:设置指定用户名为liuhui,密码为空,可访问所有数据库*

4,设置密码访问权限
mysql>grant all privileges on *.* to ‘liuhui’@’%’ IDENTIFIED BY ‘liuhui’;
说明:设置指定用户名为liuhui,密码为liuhui,可访问所有数据库*

5,设置指定可访问主机权限
mysql>grant all privileges on *.* to ‘liuhui’@’10.2.1.11’;
说明:设置指定用户名为liuhui,可访问所有数据库*,只有10.2.1.11这台机器有权限访问
还可以设置指定访问某个数据库下的某个数据表,请继续关注MySQL基础知识系列。

 

使用root账户进入mysql
create user ‘test’@’localhost’ indentified by ‘123456’;
grant all privileges on *.* to ‘test’@’localhost’ identified by ‘123456’;

grant all privileges on *.* to ‘test’@’%’ identified by ‘123456’;   #在其它任意台电脑上访问

flush privileges;

 

 

 

 

 

 

 

/* 用户和权限管理 */ ——————
用户信息表:mysql.user
— 刷新权限
flush privileges
— 增加用户
create user 用户名 identified by [password] 密码(字符串)
– 必须拥有mysql数据库的全局create user权限,或拥有insert权限。
– 只能创建用户,不能赋予权限。
– 用户名,注意引号:如 ‘user_name’@’192.168.1.1’
– 密码也需引号,纯数字密码也要加引号
– 要在纯文本中指定密码,需忽略password关键词。要把密码指定为由password()函数返回的混编值,需包含关键字password
— 重命名用户
rename user old_user to new_user
— 设置密码
set password = password(‘密码’) — 为当前用户设置密码
set password for 用户名 = password(‘密码’) — 为指定用户设置密码
— 删除用户
drop user 用户名
— 分配权限/添加用户
grant 权限列表 on 表名 to 用户名 [identified by [password] ‘password’]
– all privileges 表示所有权限
– *.* 表示所有库的所有表
– 库名.表名 表示某库下面的某表
— 查看权限
show grants for 用户名
— 查看当前用户权限
show grants; 或 show grants for current_user; 或 show grants for current_user();
— 撤消权限
revoke 权限列表 on 表名 from 用户名
revoke all privileges, grant option from 用户名 — 撤销所有权限
— 权限层级
— 要使用grant或revoke,您必须拥有grant option权限,并且您必须用于您正在授予或撤销的权限。
全局层级:全局权限适用于一个给定服务器中的所有数据库,mysql.user
grant all on *.*和 revoke all on *.*只授予和撤销全局权限。
数据库层级:数据库权限适用于一个给定数据库中的所有目标,mysql.db, mysql.host
grant all on db_name.*和revoke all on db_name.*只授予和撤销数据库权限。
表层级:表权限适用于一个给定表中的所有列,mysql.talbes_priv
grant all on db_name.tbl_name和revoke all on db_name.tbl_name只授予和撤销表权限。
列层级:列权限适用于一个给定表中的单一列,mysql.columns_priv
当使用revoke时,您必须指定与被授权列相同的列。
— 权限列表
all [privileges] — 设置除grant option之外的所有简单权限
alter — 允许使用alter table
alter routine — 更改或取消已存储的子程序
create — 允许使用create table
create routine — 创建已存储的子程序
create temporary tables — 允许使用create temporary table
create user — 允许使用create user, drop user, rename user和revoke all privileges。
create view — 允许使用create view
delete — 允许使用delete
drop — 允许使用drop table
execute — 允许用户运行已存储的子程序
file — 允许使用select…into outfile和load data infile
index — 允许使用create index和drop index
insert — 允许使用insert
lock tables — 允许对您拥有select权限的表使用lock tables
process — 允许使用show full processlist
references — 未被实施
reload — 允许使用flush
replication client — 允许用户询问从属服务器或主服务器的地址
replication slave — 用于复制型从属服务器(从主服务器中读取二进制日志事件)
select — 允许使用select
show databases — 显示所有数据库
show view — 允许使用show create view
shutdown — 允许使用mysqladmin shutdown
super — 允许使用change master, kill, purge master logs和set global语句,mysqladmin debug命令;允许您连接(一次),即使已达到max_connections。
update — 允许使用update
usage — “无权限”的同义词
grant option — 允许授予权限

 

 

 

 

 

4.4. MySQL用户帐号管理

 

MySQL用户帐号管理主要用grant(授权)和revoke(撤权)两个SQL指令来管理。这两个指令实质是通过操作user(连接权限和全局权限)、db(数据库级权限)、tables_priv(数据表级权限)、columns_priv(数据列级权限)四个权限表来分配权限的。host权限表不受这两个指令影响。下面将会详细介绍用户权限管理的内容。

  • GRANT语法说明:

    GRANT privileges (columns)          #privileges表示授予的权限,columns表示作用的列(可选) 
          ON what                       #设置权限级别,全局级、数据库级、数据表级和数据列级
          TO account                    #权限授予的用户,用"user_name"@"host_name"这种用户名、主机名格式
          IDENTIFIED BY 'password'      #设置用户帐号密码
          REQUIRE encryption requirements       #设置经由SSL连接帐号
          WITH grant or resource management options;   #设置帐号的管理和资源(连接服务器次数或查询次数等)选项
    

    示例:

    mysql>grant all on db.* to 'test'@'localhost' identified by 'test';
    上例运行后的效果是,test用户只能通过‘test’密码从本机访问db数据库
    
    mysql>grant all on db.* to 'test'@'%' identified by 'test';
    上例运行后的效果是,test用户可通过‘test’密码从任意计算机上访问db数据库。‘%’代表任意字符,‘_’代表一个任意字符。主机名部份还可以是IP地址。
    
    [Note]  
    如果没有给定主机部份,则默认为任意主机,也就是’test’和’test’@’%’是等价的。
  • Table 4.1. 访问权限表

    权限 权限说明
    CREATE TEMPORARY TABLES 创建临时数据表
    EXECUTE 执行存储过程(暂不支持)
    FILE 操作系统文件
    GRANT OPTION 可把本帐号的权限授予其它用户
    LOCK TABLES 锁定指定数据表
    PROCESS 查看运行着的线程信息
    RELOAD 重新加载权限表或刷新日志及缓冲区
    REPLICATION CLIENT 可查询主/从服务器主机名
    REPLICATION SLAVE 运行一个镜像从服务器
    SHOW DATABASES 可运行SHOW DATABASES指令
    SHUTDOWN 关闭数据库服务器
    SUPER 可用kill终止线程以及进行超级用户操作
       
    ALTER 可修改表和索引的结构
    CREATE 创建数据库和数据表
    DELETE 删除数据表中的数据行
    DROP 删除数据表和数据行
    INDEX 建立或删除索引
    INSERT 插入数据行
    REFERENCES (暂时不支持)
    SELECT 查询数据行
    UPDATE 更新数据行
       
    ALL 所有权限,但不包括GRANT。
    USAGE 无权限权限
  • Table 4.2. 权限作用范围(由ON子句设置)

    权限限定符 作用范围
    ON *.* 全局级权限,作用于所有数据库
    ON * 全局级权限,若未指定默认数据库,其作用范围是所有数据库,否则,其作用范围是当前数据库
    ON db_name.* 数据库级权限,作用于指定数据库里的所有数据表
    ON db_name.tbl_name 数据表级权限,作用于数据表里的所有数据列
    ON tbl_name 数据表级权限,作用于默认数据库中指定的数据表里的所有数据列
  • USAGE权限的用法:修改与权限无关的帐户项,如:

    mysql>GRANT USAGE ON *.* TO account IDENTIFIED BY 'new_password';     #修改密码
    mysql>GRANT USAGE ON *.* TO account REQUIRE SSL;                      #启用SSL连接
    mysql>GRANT USAGE ON *.* TO account WITH MAX_CONNECTIONS_PER_HOUR 10; #设置资源 
    
  • 拥有WITH GRANT OPTION权限的用户可把自已所拥用的权限转授给其他用户,如:

    mysql>GRANT ALL ON db.* TO 'test'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
    这样test用户就有权把该权限授予其他用户。
    
  • 限制资源使用,如:

    mysql>GRANT ALL ON db.* TO account IDENTIFIED BY 'password' WITH MAX_CONNECTIONS_PER_HOUR 10 MAX_QUERIES_PER_HOUR 200 MAX_UPDATES_PER_HOUR 50;
    允许account用户每小时最多连接20次服务器,每小时最多发出200条查询命令(其中更新命令最多为50条)
    

    默认都是零值,即没有限制。FLUSH USER_RESOURCES和FLUSH PRIVILEGES可对资源限制计数器清零。

  • REVOKE语法说明:

    mysql>REVOKE privileges (columns) ON what FROM account;
    

    示例:

    mysql>REVOKE SELECT ON db.* FROM 'test'@'localhost';
    删除test帐号从本机查询db数据库的权限
    

    REVOKE可删除权限,但不能删除帐号,即使帐号已没有任何权限。所以user数据表里还会有该帐号的记录,要彻底删除帐号,需用DELETE命令删除user数据表的记录,如:

    % mysql -u root -p
    mysql>use mysql
    mysql>DELETE FROM user where User='test' and Host='localhost';
    mysql fulsh privileges;
    

    REVOKE不能删除REQUIRE和资源占用的配置。他们是要用GRANT来删除的,如:

    GRANT USAGE ON *.* TO account REQUIRE NONE;      #删除account帐号的SSL连接选项
    GRANT USAGE ON *.* TO account WITH MAX_CONNECTIONS_PER_HOUR 0 MAX_QUERIES_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;       #删除account帐号的资源限制
    
  •  

 
 
 
 
 
 
 
 
 
 
 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107193.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • SPSS-单因素方差分析(ANOVA) 案例解析[通俗易懂]

    SPSS-单因素方差分析(ANOVA) 案例解析[通俗易懂]继续以上一期的样本为例,雌性老鼠和雄性老鼠,在注射毒素后,经过一段时间,观察老鼠死亡和存活情况。研究的问题是:老鼠在注射毒液后,死亡和存活情况,会不会跟性别有关?样本数据如下所示:(a代表雄性老鼠

  • POSTMAN自动生成接口文档_swagger自动生成接口文档

    POSTMAN自动生成接口文档_swagger自动生成接口文档介绍drf-spectacular是为DjangoRESTFramework生成合理灵活的OpenAPI3.0模式。它可以自动帮我们提取接口中的信息,从而形成接口文档,而且内容十分详细,再也不

  • java python oracle推断字符串是否为数字的函数

    java python oracle推断字符串是否为数字的函数

  • JVM调优之 -Xms -Xmx -Xmn -Xss[通俗易懂]

    原文地址  http://unixboy.iteye.com/blog/174173堆大小设置JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在WindowsServer2003系统,3.5G物理内存,J

  • postman安装包怎么安装_数据库安装教程

    postman安装包怎么安装_数据库安装教程一、Postman背景介绍用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在发送网络HTTP请求方面可以说是Chrome插件类产品中的代表产品之一。二、Postman的操作环境postman适用于不同的操作系统,PostmanMac、Windo

  • 权限持久化—映像劫持检测(Shift后门)[通俗易懂]

    权限持久化—映像劫持检测(Shift后门)[通俗易懂]映像劫持说白了还是利用了windows的一些特性,当你点击可执行文件进行执行时,系统并不会直接就对可执行文件进行执行,而是首先对注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ImageFileExecutionOptions,这个路径下面如果存在和该程序名称完全相同的子键,就查询对应子健中包含的“Dubugger”键值名,并用其指定的程序路径来代替原始的程序,之后执行的是遭到“劫持”的虚假程序。比较常用的是.

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号