权限管理:

用户:

系统层面:用户就是一个用户名===>用户名:密码

能做什么?

1、登录系统

2、管理系统对象

MySQL:

不再是单纯的用户名和密码

用户名@'主机范围' 主机范围被称之为白名单

主机范围:

本地连接::

localhost

**

远程连接:**

10.0.0.200

oldboy.com

10.0.0.% 网段

10.0.0.5%

% XXXX 不建议用

开发申请用户时,提供给管理:

app@'10.0.0.%' 密码: xxxx

权限: ALL privileges

SELECT, INSERT, UPDATE, DELETE, CREATE, RELOAD,

SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER,

SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, DROP

LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT,

CREATE VIEW, SHOW VIEW, CREATE ROUTINE,

ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE

开发人员可能会用到的权限:

create update insert select CREATE VIEW CREATE ROUTINE SHOW VIEW

CREATE TEMPORARY TABLES ALTER

grant 权限 on 权限作用范围 to 用户 identified by '密码'

.

py.py.t1

grant create,update,insert,select ,CREATE VIEW on py. to py@'192.168.12.%' identified by '123';

select user,host,password from mysql.user;

开发人员申请用户流程:

1、IP段

2、用户名、密码要求

3、需要哪些权限

MySQL中创建一个数据库时通常是要设置字符集的,一般情况下我们会设定为UTF-8,但是通常还会出现一个数据库校对规则,

有好多可选择的。可选择utf8_general_ci

这里给出示范操作:

在创建mysql数据库的时候如何支持UTF-8编码

1、用工具

CHARSET字符集:选择 utf8

COLLATION数据库校验规则:选择 utf8_general_ci

2、用SQL语句

GBK: CREATE DATABASE test1 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

UTF-8: CREATE DATABASE test2 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

创建了一个utf8的mydb的数据库:

CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_general_ci;

指定部分权限给用户:

增加一个test1用户,密码为123456,可以在任何主机上登录,并对所有数据库有查询,增加,修改和删除的功能:

grant select,insert,update,delete on mydb.* to test1@'%' identified by '123456';

FLUSH PRIVILEGES;#刷新系统权限表

授权test1所有权限:

GRANT ALL ON mydb.* TO username@localhost IDENTIFIED BY password';

查看创建用户的密码:【mysql所有的用户都存储在mysql.user这个表中】

mysql> select user,host,password from mysql.user;

ERROR 1054 (42S22): Unknown column 'password' in 'field list'

查看数据库的表有哪些字段可以查询:authentication_string

help show;

创建

SHOW CREATE TABLE tbl_name;

select * from mysql.user ;

报错原因解决:

mysql5.7以后mysql.user表中没有了password字段,而是使用authentication_string来代替。

select user,host,authentication_string from mysql.user;

等同于

use mysql;

select user,host,authentication_string from user;

update mysql.user setauthentication_string=password(“新密码”) where User=”test” and Host=”localhost”;

flush privileges;

设置mysql的root密码:

输入update mysql.user set authentication_string=password('密码')where user='账户';假设密码是123。

最后输入flush privileges;按回车,告诉mysql刷新一下系统权限,此时修改的密码才会生效。

update mysql.user set authentication_string=password(123456) where User="root" and Host="localhost";

mysql 跳过密码验证:

最好以管理员身份运行cmd,进入bin目录下,然后停止服务器,输入net stop mysql,

再输入 mysqld --skip-grant-tables (回车,启动mysql,意思是告诉mysql不需要登录验证)。

然后关掉cmd,再重新打开。

输入mysql -uroot -p 连续按两次回车按钮会直接进入mysql的控制台界面,此时发现登录 root 账号是不需要密码的。

删除mysql.user表中的用户:

Delete FROM mysql.user Where User="用户名" and Host=”localhost”;

flush privileges;

小节:

一、创建数据库:

1、 CREATE DATABASE 数据库名;

2、 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码';

3、 SET PASSWORD FOR

'数据库名'@'localhost' = OLD_PASSWORD('密码');

依次执行3个命令完成数据库创建。注意:中文 “密码”和“数据库”是户自己需要设置的。

二、修改密码:

mysql -u root -p

update mysql.user setauthentication_string=password(“新密码”) where User=”test” and Host=”localhost”;

flush privileges;

mysql5.7以后mysql.user表中没有了password字段,而是使用authentication_string来代替。

三、删除用户:

mysql -u root -p

Delete FROM mysql.user Where User="用户名" and Host=”localhost”;

flush privileges;

创建用户

命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';

删除账户及权限:

drop user 用户名@’%’;

drop user 用户名@ localhost;

注意:

创建一个只允许从本地登录的超级用户yan,并允许将权限赋予别的用户,密码为111

GRANT ALL PRIVILEGES ON . TO yan@'localhost' IDENTIFIED BY '111' WITH GRANT OPTION;

GRANT命令说明:

ALL PRIVILEGES 是表示所有权限,你也可以使用select、update等权限提到的权限。

ON 用来指定权限针对哪些库和表。

. 中前面的号用来指定数据库名,后面的号用来指定表名

TO 表示将权限赋予某个用户。

test@'%' 表示feihong用户,@后面接限制的主机,可以是IP、IP段、域名以及%,localhost表示本地

%表示任何地方。注意:这里%有的版本不包括本地,以前碰到过给某个用户设置了%允许任何地方登录,但是在本地登录不了,这个和版本有关系,遇到这个问题再加一个localhost的用户就可以了。

WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。

注意:经常有人在创建操作用户的时候不指定WITH GRANT OPTION选项

导致后来该用户不能使用GRANT命令创建用户或者给其他用户授权。

备注:可以使用GRANT重复给用户添加权限,权限叠加,比如你先给用户添加了一个select权限,

然后又给用户添加了一个insert权限,那么该用户就同时拥有了select和insert权限。

四、为用户授权:

设置权限时必须给出一下信息

1,要授予的权限

2,被授予访问权限的数据库或表

3,用户名

grant和revoke可以在几个层次上控制访问权限

1,整个服务器,使用 grant ALL 和revoke ALL

2,整个数据库,使用on database.*

3,特点表,使用on database.table

4,特定的列

5,特定的存储过程

user表中host列的值的意义

% 匹配所有主机

localhost localhost不会被解析成IP地址,直接通过UNIXsocket连接

127.0.0.1 会通过TCP/IP协议连接,并且只能在本机访问;

::1 ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1

授权格式:grant 权限 on 数据库.to 用户名@登录主机 identified by “密码”;

eg: grant all privileges on.* to 'root'@'192.168.218.128' identified by 'hello' with grant option;

flush privileges; //要刷新权限

授权test用户拥有testDB数据库的所有权限:

grant all privileges on testDB.* to “test”@”localhost” identified by “1234”;

flush privileges; #刷新系统权限表

指定部分权限给用户:

grant select,update on testDB.* to “test”@”localhost” identified by “1234”;

flush privileges; #刷新系统权限表

for example:

创建一个网站用户(程序用户)

创建一个一般的程序用户,这个用户可能只需要SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES等权限如果有存储过程还需要加上EXECUTE权限,一般是指定内网网段192.168.100网段。

GRANT USAGE,SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ,CREATE TEMPORARY TABLES,EXECUTE ON test.* TO webuser@'192.168.100.%' IDENTIFIED BY 'test@feihong.111';

创建一个普通用户(仅有查询权限)

GRANT USAGE,SELECT ON test.* TO public@'192.168.100.%' IDENTIFIED BY 'public@feihong.111';

五、查看用户的权限:

SHOW GRANTS FOR 'test1'@'%';

SHOW GRANTS FOR 'root'@'localhost';

SHOW GRANTS FOR 'webuser'@'192.168.100.%';

六、回收权限:

REVOKE DELETE ON mydb.* FROM 'test1'@'%';

七、删除用户:

注意删除用户不要使用DELETE直接删除,因为使用DELETE删除后用户的权限并未删除,新建同名用户后又会继承以前的权限。正确的做法是使用DROP USER命令删除用户,比如要删除'webuser'@'192.168.100.%'用户采用如下命令:

DROP USER 'webuser'@'192.168.100.%';

大家可以采用percona-toolkit工具中的pt-show-grants工具来辅助管理mysql权限

八、显示当前用户信息:

select user();

九、MySQL权限分配:

权限分布 :可能设置的权限

表权限:

'Select', 'Insert', 'Update', 'Delete', 'Create', 'Drop', 'Grant', 'References', 'Index', 'Alter'

列权限:

'Select', 'Insert', 'Update', 'References'

过程权限:

'Execute', 'Alter Routine', 'Grant'

mysql用户授权root权限管理_mysql用户权限管理相关推荐

  1. mysql数据库权限查询_mysql数据库权限管理

    mysql数据库权限管理 # 查看权限 # 使用mysql数据库 mysql> use mysql; # 查看所有用户和权限 # 查询主机用户名密码:5.7版本之前的 mysql> sel ...

  2. mysql用户登录和第三方登录_mysql 用户表结构设计,第三方登录

    说起用户表,大概是每个应用/网站立项动工(码农们)考虑的第一件事情.用户表结构的设计,算是整个后台架构的基石.如果基石不稳,待到后面需求跟进了发现不能应付,回过头来反复修改用户表,要大大小小作改动的地 ...

  3. mysql用户及权限管理_MySQL 用户及权限管理

    1.mysql用户的定义 在mysql中,用户由用户名和主机域组成的. 1.1 用户名的写法 mysql> create user test1@'localhost'; 注意:用户名不要以数字. ...

  4. mysql 用户管理_mysql 用户管理及数据权限问题总结

    1.远程登录mysql mysql -h ip -u root -p 密码 2.创建用户 格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码 ...

  5. mysql取消权限设置_mysql用户授权与权限撤销

    mysql用户授权与权限撤销 实验练习: 1.允许root从192.168.4.0/24网段访问,对所有库/表有完全控制权限,需要验证的密码为xujunxian. 2.建立一个管理账号dba007,对 ...

  6. mysql-front权限管理_mysql 用户及权限管理 小结

    MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命 ...

  7. Linux系统将普通用户授权root权限

    现在想在系统文件夹/opt 目录下创建一个文件夹,但是发现普通用户atguigu无对文件夹opt操作权限,故对atguigu用户赋权root权限 1.打开切换到root目录下,打开/etc/sudoe ...

  8. 怎么用mysql来统计消费金额限制_mysql——用户消费行为分析

    分析导览:分析目的 1-统计不同性别的消费频次.消费金额 2-统计不同年龄段用户的消费金额 3-统计不同月份的消费金额 4-统计多次消费的用户,第一次和最后一次消费时间的间隔 5-统计不同年龄段的用户 ...

  9. mysql 授予权限语句_MySQL授予权限

    数据库中,不同的用户拥有不同的权限,合理的授权,可以保证数据库的安全 GRANT语句 MySQL中,提供了一个GRANT语句,用于为用户授权 语法格式 GRANT privileges [(colum ...

最新文章

  1. 原始尺寸_螺母尺寸检测,螺丝螺母外观检测设备
  2. 「超全」工欲善其事必先利其器!
  3. Java方法 传值方式
  4. php pdo参数化,php – 如何正确地使用PDO对象的参数化SELECT查询
  5. 使用Model-View-ViewModel使用Dart Streams使Flutter中的代码更清晰
  6. “命令终端”的实现3-命令的执行
  7. 热点和秒杀来临前要做的5件事
  8. UE4材质是什么样的机制
  9. 使用matlab计算并绘制连续信号的傅里叶变换
  10. 数字化运营管控是如何提升管理透明及效率的!
  11. 二级建造师学python有用_终于清楚python入门最好的教程
  12. c语言指针的运用——回文单词与回文句子
  13. 别把“IT信息化”不当“超级工程”
  14. ASUS华硕飞行堡垒fx80gd怎么用Fn+F5功能控制风扇转速
  15. RustDesk 自建服务器,局域网可以连接服务器,外网就不可以了。 求高手指点迷津。
  16. 对B/S架构和C/S架构的分析
  17. html 页面自适应table,HTML页面自适应宽度的table表格
  18. FANUC机器人的EE接口使用方法
  19. OllyDbg操作——TraceMe.exe调试
  20. python弹球小游戏程序设计_Python写的弹球小游戏

热门文章

  1. php删除字符串后三位,PHP如何去掉字符串后四位?-PHP问题
  2. 录音转文字助手该怎么使用?这里教你操作方法
  3. 游戏营销:通过游戏让消费者对品牌“上瘾”
  4. 计算机在化学化工中的应用ppt绪论,化学反应工程-绪论课件.ppt
  5. Linux网络基础管理
  6. JavaOOP学习(第六天)
  7. 抖音热门BGM爬虫下载
  8. 常见的Web攻击手段,拿捏了!
  9. 雷爵电容笔和南卡哪个好用?Ipad平替电容笔对比测评
  10. 初次使用Winform抓取数据的一点心得