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 ...
随机推荐
- js中prototype与__proto__的关系详解
一.构造函数: 构造函数:通过new关键字可以用来创建特定类型的对象的函数.比如像Object和Array,两者属于内置的原生的构造函数,在运行时会自动的出现在执行环境中,可以直接使用.如下: var ...
- el-table表格错误问题
.el-table--border th.gutter:last-of-type { display: block!important; width: 17px!important; } 如果不行,则 ...
- KVM之virsh管理虚拟机CPU
查看虚拟机CPU数量配置 [root@ubuntu ~]# virsh vcpucount centos_server01 maximum config 2 maximum live 2 curren ...
- Axure流程图
什么是流程图 一个流程图可用于展示各种各样的处理流程,包括用例流程.商业流程.页面流程等.在Axure中,流程图常用于提供一个高保真的.能通过所设计的页面来完成的任务视图.一张简明的流程图,能促进和其 ...
- 怎么处理Win10系统更新提示代码0x80070057的错误?
在使用好系统重装助手重装了Win10系统后,由于每个用户的电脑配置不同,有些用户会在更新时出现0x80070057的错误代码.下面就教大家Win10系统更新出现0x80070057错误该怎么解决. W ...
- strconv:各种数据类型和字符串之间的相互转换
介绍 strconv包实现了基本数据类型和其对应字符串之间的相互转换.主要有一下常用函数:Atoi,Itoa,Parse系列,Formart系列,Append系列 string和int之间的转换 这一 ...
- jeffy-vim-v2.9
http://pan.baidu.com/s/1qW1DlP6
- KVM虚拟机高级设置——08 管理远程虚拟机
在搭建KVM环境——07 带GUI的Linux上安装KVM图形界面管理工具介绍了KVM图形化管理工具,这款工具除了可以管理本地KVM虚拟外,还可以管理远程KVM虚拟机. 输入113机器密码 输入yes ...
- Const *ptr ptr
1. const int *ptr = NULL; <=> int const *ptr = NULL; 1) 表示指向符号常量的指针变量,指针变量本身并非const所以可以指向其他变量. ...
- 在 java 程序中怎么保证多线程的运行安全?(未完成)
在 java 程序中怎么保证多线程的运行安全?(未完成)