mysql用户与授权
视图
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用户与授权的更多相关文章
- MySQL 用户与授权管理详解
大纲 一.前言 二.创建用户并授权 三.GRANT语句的种类 四.撤权并删除用户 一.前言 做为Mysql数据库管理员管理用户账户,是一件很重要的事,指出哪个用户可以连接服务器,从哪里连接,连接后能做 ...
- linux下添加mysql用户并授权
-------------------暂停mysqlservice mysqld stop 忘记密码修改流程1,修改mysql配置文件 /etc/my.cnf,在[mysqld]下添加一行skip-g ...
- mysql用户和授权
CREATE USER 'monitor'@'10.224.32.%' IDENTIFIED BY '123@abAB'; mysql> GRANT select,insert,update O ...
- mysql用户创建授权
创建用户: grant select,update,insert,delete,create,drop,alter,index on *.* to 'jyx_mysql'@'%' identified ...
- mysql 创建用户、授权等操作
一, 创建用户: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指 ...
- MySql安装与MySQL添加用户、删除用户与授权
1.安装MySql 目前MySQL有两种形式的文件,一个是msi格式,一个是zip格式的.msi格式的直接点击setup.exe就好,按照步骤进行.但是很多人下了zip格式的解压发现没有s ...
- MySQL 创建用户 与 授权
例,需要给 121.52.215.100 连接添加一个用户 dee,密码是 123456,他只能对数据库 vshop 有 select 权限: CREATE USER '; GRANT SELECT ...
- 创建MySQL用户 赋予某指定库表的权限 flush privileges才能生效!!!!;@'localhost'授权本地,@'%'授权远程
update ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value 建议使用GRANT语句进行授权,语句如下: gra ...
- Mysql 新建用户以及授权远程连接操作
1:以root身份登陆mysql终端 mysql -uroot -pmysql 2:创建wx用户,注意密码要加单引号 mysql> create user wx identified by 'w ...
随机推荐
- K2 BPM_“选BPM还是RPA?”,这不是一道单选题_全业务流程管理专家
在我们和企业讨论流程自动化的时候,经常会被问到一个问题,“公司目前正在调研市面上的业务流程自动化产品,我们已经把选择范围缩小到了BPM和RPA之间.我们应该怎么选择?BPM能做的好像RPA都能做到.” ...
- Mongodb 的ORM框架 Morphia 注解 之 @Reference
public class BlogEntry { private String title; private Date publishDate; private String body; privat ...
- 【2017-11-26】Linq表连接查询
class Program { static void Main(string[] args) { //Linq创建的数据库上下文对象db DataClasses2DataContext db = n ...
- 【转】PS1应用-修改linux终端命令行字体颜色
原文链接:https://www.jianshu.com/p/4239d3ea72fe cd ls -la vim .bashrc 在.bashrc中加入这一行: PS1="\[\e[37; ...
- 从头至尾一点点实现自己的ViewPager效果
对于ViewPager,应该没有人在项目中没使用过它,效果非常的赞,使用也非常简单,但是如果自己来实现这样的效果,我想并非三下五除二的事了,这里涉及到怎么自定义ViewGroup了,它相比自定义Vie ...
- 大数据之路week03--day05(线程 I)
真的,身体这个东西一定要爱护好,难受的时候电脑都不想去碰,尤其是胃和肾... 这两天耽误了太多时间,今天好转了立刻学习,即刻不能耽误!. 话不多说,说正事: 1.多线程(理解) (1)多线程:一个应用 ...
- sqlserver常用运维sql
1. sqlserver 检测sql SELECT top 10 (total_elapsed_time / execution_count)/1000 N'平均时间ms' ,total_elapse ...
- 第81题:搜索旋转排序数组II
一. 问题描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] ). 编写一个函数来判断给定的目标值是 ...
- Mongo Backup
#!/bin/sh # This script is run on every mongo node. However, it checks to see if this node is the pr ...
- 执行mysql脚本文件
一般都是连接mysql执行sql语句: 在命令行下输入 mysql -h localhost -u root -p回车,然后输入密码即可; 或直接运行mysql自带的连接工具,然后输入密码即可. 执行 ...