前言

在企业信息化的过程当中,数据库中库和表都会大量存在,须要分配给管理者核实的权限进行操做

合理地分配权限,可使数据库管理井井有理,各个管理者只须要关注本身负责的内容,也可避免误操做对系统形成损失

1、用户与受权

数据库是信息系统中很是重要的一个环节,合理高效地对它进行管理是很重要的工做

一般是由总管理员建立不一样的管理帐户,而后分配不一样的操做权限,把这些帐户交给相应的管理人员使用

1.用户管理

1.1 新建用户

CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];

用户名:将要建立的用户名

来源地址:

指定新建立的用户可在哪些主机上登陆,可以使用 IP 地址、网段、主机名的形式

本地用户可用 localhost

若是想让该用户能够从任意远程主机登陆,可用通配符 %

密码:

MySQL 5.7 版本启用了密码加强插件,新密码必须符合密码负载型要求,用户的登陆密码不能为空

密码一般是须要通过加密处理再写入数据库,在不使用 password 关键字时,可使用明文密码,直接输入"密码",插入到数据库时由 MySQL 自动加密

若是使用 password 关键字,能够直接插入密文,MySQL 再也不进行加密处理

若使用加密密码,须要先使用select password(‘密码’); 获取密文,再在语句中添加 password ‘密文’

若省略“identified by”部分,则用户的密码将为空(不建议使用)

create user 'wangyi'@'localhost' identified by '123123';

select password('123123');

create user 'lisi'@'localhost' identified by password

1.2 查看用户信息

建立后的用户保存在 mysql 数据库的 user 表里mysql

USE mysql;

SELECT User,authentication_string,Host from user;

1.3 重命名用户

RENAME USER 'wangyi'@'localhost' TO 'wangsan'@'localhost';

select user,authentication_string,host from user;

1.4 删除用户

DROP USER 'wanger'@'localhost';

select user,authentication_string,host from user;

1.5 给用户设置密码

1.5.1 修改当前用户登陆密码

set password = password('zxc123');

quit

mysql -u root -p

1.5.2 修改其余用户密码

set password for 'wangsan'@'localhost' = PASSWORD('zxc123');

use mysql;

select user,authentication_string,host from user;

1.6 忘记 root 密码的解决办法

使用 MySQL 时,若是忘记了其余用户的密码,可使用 root 用户从新设置

可是若是忘记 root 的密码,就须要采用特殊的方法进行操做

#修改 /etc/my.cnf 配置文件,可不使用密码直接登陆到 mysql

vim /etc/my.cnf

[mysqld]

skip-grant-tables

#添加,使登陆mysql不使用受权表

systemctl restart mysqld

mysql

#可直接登陆

#使用 update 修改 root 密码,刷新数据库

UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('123123') where user='root';

FLUSH PRIVILEGES;

quit

#再去删除以前在 /etc/my.cnf 里新添加的内容,并重启服务

mysql -uroot -p123123

2.受权控制

在 MySQL 中,权限设置很是重要,分配权限能够清晰地划分责任

管理人员只须要关注本身的任务便可,最重要的是保证系统数据的安全

2.1 授予权限

权限控制主要是处于安全因素,所以须要遵循如下几个经验原则:

只授予能知足须要的最小权限,防止用户误操做和干坏事

建立用户的时候限制用户的登陆主机,通常是限制成指定 IP 或内网 IP 段

初始化数据库时删除没有密码的用户,由于安装完数据库时会自动建立一些用户,这些用户默认没有密码

为每一个用户设置知足密码复杂度的密码

按期清理不须要的用户,如回收权限或删除用户

命令格式及用法以下:

GRANT语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,GRANT语句将会建立新的用户;当指定的用户名存在时,GRANT 语句用于修改用户信息。

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];

#权限列表:用于列出受权使用的各类数据库操做,以逗号进行分隔,如“select,insert,update”;使用“all”表示全部权限,可受权执行任何操做

#数据库名.表名:用于指定受权操做的数据库和表的名称,其中可使用通配符“*”。*例如,使用“xcf.*”表示受权操做的对象为 xcf 数据库中的全部表

#'用户名@来源地址':用于指定用户名称和容许访问的客户机地址,即谁能链接、能从哪里链接;来源地址能够是域名、IP 地址,还可使用“%”通配符,表示某个区域或网段内的全部地址,如“%.xcf.com”、“192.168.126.%”等

#IDENTIFIED BY:用于设置用户链接数据库时所使用的密码字符串;在新建用户时,若省略“IDENTIFIED BY”部分, 则用户的密码将为空

实例:容许用户wangsan在本地查询 class 数据库中全部表的数据记录,但禁止查询其余数据库中的表的记录

GRANT select on class.* to 'wangsan'@'localhost' identified by '123123';

quit;

mysql -uwangsan -p123123

show databases;

use information_schema;

show tables;

select * from INNODB_SYS_TABLESTATS;

容许用户wangsan在本地远程链接 mysql ,并拥有全部权限

quit

mysql -u root -p123123

GRANT ALL PRIVILEGES ON *.* TO 'wangwu'@'localhost' IDENTIFIED BY '123456';

flush privileges;

quit

mysql -uwangsan -p123123

show databases;

use class;

show tables;

select * from test01

2.2 查看权限

SHOW GRANTS FOR 用户名@来源地址;

例:

show grants for 'wangsan'@'localhost';

2.3 撤销权限

REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址;

例:

quit

mysql -uroot -p123123

show grants for 'wangsan'@'localhost';

revoke select on "class".* from 'wangsan'@'localhost';

show grants for 'wangsan'@'localhost';

flush privileges;

#撤销权限后,该用户只保留登陆权限

mysql管理用户数据库_MySQL 数据库管理(一)(用户与受权)相关推荐

  1. mysql root 无法建立数据库_MySQL - 在root用户下你跟我说无法建表!?

    问题场景描述 在某次操作中,我作死用 find 和 chown 命令行修改文件/文件夹的权限和所有者,后来简单粗暴地把 www 文件夹的权限改回755[1],把文件的权限改为644:所有者全部改为ro ...

  2. MySQL为其他用户创建数据库_MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限...

    1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Pas ...

  3. mysql grant 主机名_MySQL GRANT:用户授权

    授权就是为某个用户赋予某些权限.例如,可以为新建的用户赋予查询所有数据库和表的权限.MySQL 提供了 GRANT 语句来为用户设置权限. 在 MySQL 中,拥有 GRANT 权限的用户才可以执行 ...

  4. mysql创建新用户方法_Mysql创建新用户方法

    1.       CREATE USER 语法: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 例子: CREATE USER 'do ...

  5. mysql 创建新用户权限_MySQL创建新用户以及权限授予

    1.通过mysql数据库的user表查看用户相关信息 mysql> use mysql; mysql> select host,user from user; 查看用户相关信息 2.创建数 ...

  6. mysql怎么获得权限_mysql怎么给用户加权限

    mysql给用户加权限的方法:首先创建用户,代码为[create user 用户名 identified by '密码']:然后给用户分配权限,代码为[grant 权限 on 数据库.数据表 to ' ...

  7. mysql怎么给权限_mysql怎么给用户加权限

    mysql怎么给用户加权限 mysql给用户加权限的方法:首先创建用户,代码为[create user 用户名 identified by '密码']:然后给用户分配权限,代码为[grant 权限 o ...

  8. mysql命令导出数据库_MYSQL 数据库导入导出命令

    在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生.所以一般推荐用SQL脚本形式导入.下面分别介绍两种方法. MySQL命令行导出数据库 1,进入MySQL目录下的bin ...

  9. 如何用mysql创建股票数据库_mysql数据库创建表

    Mysql错误代码大全 1016错误:文件无法打开,使用后台修复或者使用phpmyadmin进行修复. 1044错误:数据库用户权限不足,请联系空间商解决 1045错误:数据库服务器/数据库用户名/数 ...

最新文章

  1. 插入排序算法(基于Java实现)
  2. Spring Cloud笔记
  3. jersey rest webservice
  4. 表格列隐藏_【excel每日提升】Excel隐藏列,不让别人打开!
  5. 使用XStream注解处理复杂xml的属性及数据集合(xml转对象)
  6. 【Spark Summit EU 2016】沃森媒体分析系统:从单租户Hadoop到3000租户Spark的架构演进...
  7. javafx button按钮分组突出选中按钮(ToggleButton)
  8. NOIP2018 摸鱼记
  9. windows的映射驱动器
  10. 气血瘀滞热入血室闭经案
  11. xps转jpeg图片
  12. geany java编译器乱码_Ubuntu Geany打开文件乱码的解决方法
  13. js怎么把字符串转数字
  14. Docker_03_彻底搞懂Dockerfile文件
  15. idea提示未找到包,实际上包存在 问题解决
  16. Ubuntu卸载预装
  17. 学校网站建设要做好四个难点
  18. 东南计算机国际学院,拼搏·东南 | 东南大学第四届超级计算机竞赛暨ASC20-21世界大学生超级计算机竞赛东南大学预赛...
  19. 前端性能优化之图片优化
  20. 全球通大屏4G单兵执法记录仪BC310用户手册

热门文章

  1. 解密ATS 4.2.3的缓存状态密码
  2. Maya人物角色行走动画制作视频教程
  3. Go 分布式学习利器(18)-- Go并发编程之lock+WaitGroup实现线程安全
  4. r-route 命令 显示/配置ip路由表
  5. 贪心:jump 游戏(获取最少跳跃的次数以及跳跃路径)
  6. Gym - 102082G
  7. 【php】【psr】psr2 编码风格规范
  8. Python maketrans() 方法
  9. 8天学通MongoDB——第三天 细说高级操作
  10. 一个比较保守的404页面