视图

create view 视图名   as  查询语句;

MariaDB [hellodb]> create view view_left as select name from students;
Query OK, rows affected (0.00 sec)
MariaDB [hellodb]> create view view_students as select stuid,name from students;Query OK, rows affected (0.00 sec)

MariaDB [hellodb]> select * from view_students;
+-------+---------------+
| stuid | name |
+-------+---------------+
| | Shi Zhongyu |
| | Shi Potian |
| | Xie Yanke |
| | Ding Dian |
| | Yu Yutong |
| | Shi Qing |
| | Xi Ren |
| | Lin Daiyu |
| | Ren Yingying |
| | Yue Lingshan |
| | Yuan Chengzhi |
| | Wen Qingqing |
| | Tian Boguang |
| | Lu Wushuang |
| | Duan Yu |
| | Xu Zhu |
| | Lin Chong |
| | Hua Rong |
| | Xue Baochai |
| | Diao Chan |
| | Huang Yueying |
| | Xiao Qiao |
| | Ma Chao |
| | Xu Xian |
| | Sun Dasheng |
+-------+---------------+
rows in set (0.00 sec)

用户管理

1、用户账号

用户的账号由用户名和HOST俩部分组成('USERNAME'@'HOST'

HOST的表示:

  • 主机名

  • 具体IP地址
  • 网段/掩码

可以使用通配符表示,%和_;192.168.%即表示这个网段的所有主机

2、增加删除账号

主要:在数据库中修改了用户信息需要执行FLUSH PRIVILEGES;来刷新授权表使其生效

  • 创建

    create user '用户名'@'主机名' identified by '密码';
 MariaDB [mysql]> CREATE USER 'user1'@'192.168.%';
MariaDB [mysql]> CREATE USER 'user2'@'192.168.%' IDENTIFIED BY 'your_password';
MariaDB [mysql]> SELECT user,host,password FROM user;
+-------+-----------+-------------------------------------------+
| user | host | password |
+-------+-----------+-------------------------------------------+
| root | localhost | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |
| root | centos7 | |
| root | 127.0.0.1 | |
| root | :: | |
| | localhost | |
| | centos7 | |
| user1 | 192.168.% | |
| user2 | 192.168.% | *9E72259BA9214F692A85B240647C4D95B0F2E08B |
+-------+-----------+-------------------------------------------+
  • 删除

    drop user '用户名'@'主机名';
     MariaDB [mysql]> DROP USER user2@'192.168.%';
  MariaDB [mysql]> SELECT user,host,password FROM user;
+-------+-----------+-------------------------------------------+
| user | host | password |
+-------+-----------+-------------------------------------------+
| root | localhost | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |
| root | centos7 | |
| root | 127.0.0.1 | |
| root | :: | |
| | localhost | |
| | centos7 | |
| user1 | 192.168.% | |
+-------+-----------+-------------------------------------------+
  • 重命名
MariaDB [mysql]> RENAME USER user1@'192.168.%' TO testuser@'%';
MariaDB [mysql]> SELECT user,host,password FROM mysql.user;
+----------+-----------+-------------------------------------------+
| user | host | password |
+----------+-----------+-------------------------------------------+
| root | localhost | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |
| root | centos7 | |
| root | 127.0.0.1 | |
| root | :: | |
| | localhost | |
| | centos7 | |
| testuser | % | |
+----------+-----------+-------------------------------------------+
修改密码
 MariaDB [mysql]> SET PASSWORD FOR testuser@'%' =PASSWORD('testpass');
MariaDB [mysql]> SELECT user,host,password FROM mysql.user;
+----------+-----------+-------------------------------------------+
| user | host | password |
+----------+-----------+-------------------------------------------+
| root | localhost | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |
| root | centos7 | |
| root | 127.0.0.1 | |
| root | :: | |
| | localhost | |
| | centos7 | |
| testuser | % | *00E247AC5F9AF26AE0194B41E1E769DEE1429A29 |
+----------+-----------+-------------------------------------------+

其他修改密码的方法:

​ UPDATE user SET password=PASSWORD('testpass') WHERE user='testuser';

​ # mysqladmin -uroot -poldpass password 'newpass'

3、破解管理账号密码

  • 空数据库的情况下恢复密码
# systemctl stop mariadb
# rm -rf /var/lib/mysql/* #删库跑路
# systemctl start mariadb
  • 有数据的情况下恢复密码
  )在/etc/my.cnf配置文件的[mydqld]下添加skip-grant-tables和skip-networking参数
)# systemctl restart mariadb 重启服务
)执行mysql登录到数据库
)MariaDB [(none)]> UPDATE mysql.user SET password=PASSWORD('newpassword') WHERE user='root' AND host='localhost'; #更新密码
)MariaDB [(none)]> FLUSH PRIVILEGES; #刷新授权表
)退出,修改配置文件,删除skip-grant-tables和skip-networking参数,重启服务

也可以在启动mysqld进程时,为其使用如下选项:
--skip-grant-tables

​ --skip-networking

授权管理

1、授权

grant all on 库名.标名(*表示所有) to 用户名@'主机名(%所有)' identified by '密码'; 

授权时如果用户不存在则创建,所以我们一般不会单独去创建一个用户,而是授权创建一块完成。

  • priv_type 授权类型

    SELECT
    ​INSERT
    ​UPDATE
    ​DELETE
    ​CREATE
    ​DROP
    INDEX
    ALTER
    ​SHOW DATABASES
    ​CREATE TEMPORARY TABLES
    ​LOCK TABLES
    ​CREATE VIEW
    SHOW VIEW
    CREATE USER
    ALL PRIVILEGES 或 ALL
  • object_type 授权对象
    TABLE
    FUNCTION
    PROCEDURE
  • priv_level 授权级别
    *或*.* 表示所有库
    db_name.* 表示指定库中的所有表
    db_name.tbl_name 指定库中的指定表
    tbl_name 表示当前库的表
    db_name.routine_name 表示指定库的函数,存储过程,触发器
  • WITH GRANT OPTION
    MAX_QUERIES_PER_HOUR count
    MAX_UPDATES_PER_HOUR count
    MAX_CONNECTIONS_PER_HOUR count
    MAX_USER_CONNECTIONS count
MariaDB [school]> GRANT SELECT(stuid,name) ON TABLE school.students TO admin@'%' IDENTIFIED BY 'admin';  #把students表的stuid和name字段的查询权限授权于admin@'%'用户
MariaDB [school]> FLUSH PRIVILEGES; #刷新授权表

2、查询授权

MariaDB [school]> SHOW GRANTS FOR admin@'%'\G  #查看指定用户的权限
*************************** . row ***************************
Grants for admin@%: GRANT USAGE ON *.* TO 'admin'@'%' IDENTIFIED BY PASSWORD '*4ACFE3202A5FF5CF467898FC58AAB1D615029441'
*************************** . row ***************************
Grants for admin@%: GRANT SELECT (stuid, name) ON `school`.`students` TO 'admin'@'%'
[root@working ~]# mysql -uadmin -padmin -h192.168.0.
MariaDB [(none)]> SHOW GRANTS FOR CURRENT_USER()\G #查询自己的权限
*************************** . row ***************************
Grants for admin@%: GRANT USAGE ON *.* TO 'admin'@'%' IDENTIFIED BY PASSWORD '*4ACFE3202A5FF5CF467898FC58AAB1D615029441'
*************************** . row ***************************
Grants for admin@%: GRANT SELECT (stuid, name) ON `school`.`students` TO 'admin'@'%'

3、收回授权

MariaDB [school]> REVOKE SELECT(stuid) ON school.students FROM admin@'%';  #收回admin@'%'用户对stuid字段的查询权限

mysql用户与授权的更多相关文章

  1. MySQL 用户与授权管理详解

    大纲 一.前言 二.创建用户并授权 三.GRANT语句的种类 四.撤权并删除用户 一.前言 做为Mysql数据库管理员管理用户账户,是一件很重要的事,指出哪个用户可以连接服务器,从哪里连接,连接后能做 ...

  2. linux下添加mysql用户并授权

    -------------------暂停mysqlservice mysqld stop 忘记密码修改流程1,修改mysql配置文件 /etc/my.cnf,在[mysqld]下添加一行skip-g ...

  3. mysql用户和授权

    CREATE USER 'monitor'@'10.224.32.%' IDENTIFIED BY '123@abAB'; mysql> GRANT select,insert,update O ...

  4. mysql用户创建授权

    创建用户: grant select,update,insert,delete,create,drop,alter,index on *.* to 'jyx_mysql'@'%' identified ...

  5. mysql 创建用户、授权等操作

    一, 创建用户: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指 ...

  6. MySql安装与MySQL添加用户、删除用户与授权

    1.安装MySql       目前MySQL有两种形式的文件,一个是msi格式,一个是zip格式的.msi格式的直接点击setup.exe就好,按照步骤进行.但是很多人下了zip格式的解压发现没有s ...

  7. MySQL 创建用户 与 授权

    例,需要给 121.52.215.100 连接添加一个用户 dee,密码是 123456,他只能对数据库 vshop 有 select 权限: CREATE USER '; GRANT SELECT ...

  8. 创建MySQL用户 赋予某指定库表的权限 flush privileges才能生效!!!!;@'localhost'授权本地,@'%'授权远程

    update ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value 建议使用GRANT语句进行授权,语句如下: gra ...

  9. Mysql 新建用户以及授权远程连接操作

    1:以root身份登陆mysql终端 mysql -uroot -pmysql 2:创建wx用户,注意密码要加单引号 mysql> create user wx identified by 'w ...

随机推荐

  1. list通过lambda 表达式去重,筛选

    List<User> distinctList = new ArrayList();User user1 = new User();user1.setId("111") ...

  2. Java 面向对象(三)static 关键字

    一.static 1.概述 static 的意思的静态的,也是一种修饰符. 关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单属于某个对象的. 用 ...

  3. nuxt中全局引入element-ui

    介绍 对于一个前端小白来说,使用一套已有的框架作为基础,可以达到事半功倍的效果,在这里我们选择Element.Element,一套为开发者.设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库( ...

  4. jquery操作select下拉框:取值,赋值,删除

    1.jQuery对select的取值 <select id="test"> <option value ="1">测试1</opt ...

  5. Scyther 形式化分析工具资料整理(三)

    1.作者Cas Cremers在做TLS1.3的时候我么发现并没有使用Scyther 形式化丰分析工具对其进行分析,而是使用了 The Tamarin .作者建立了TLS.13的模型. 那么我的目标是 ...

  6. 我是怎么找到电子书的 - IT篇

    转自于:http://my.oschina.net/0757/blog/375908#OSC_h2_8 IT-ebooks http://it-ebooks.info/ http://www.it-e ...

  7. B进制星球(多进制 高精加)

    https://www.luogu.org/problemnew/show/P1604 B(2<=B<=36)进制计数.编写实现B进制加法的程序. 输入输出格式 输入格式: 共3行第1行: ...

  8. 前端笔记-css

    css(穿着) 1. 第一种<head><style></style></head>中可以写css样式 css选择器 定位到哪个标签的css id选择器 ...

  9. Java并发包--LinkedBlockQueue

    转载请注明出处:http://www.cnblogs.com/skywang12345/p/3503458.html LinkedBlockingQueue介绍 LinkedBlockingQueue ...

  10. Oracle 中文转字母 函数

    CREATE OR REPLACE FUNCTION F_TRANS_PINYIN_CAPITAL(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPARE V ...