首页 > 其他分享 >三、(6)权限管理

三、(6)权限管理

时间:2023-09-17 10:09:17浏览次数:38  
标签:权限 管理 密码 mysql validate password localhost


1.用户管理
1. 登录和退出MySQL
本地登录客户端命令:
# mysql -uroot -pqf123

远程登陆:
客户端语法:mysql  -u  用户名  -p  密码  -h  ip地址   -P端口号:如果没有改端口号就不用-P指定端口
# mysql -h192.168.246.253 -P 3306 -uroot -pqf123
如果报错进入server端服务器登陆mysql执行:

mysql> use mysql

mysql> update user set host = '%' where user = 'root';
#????????

mysql> flush privileges;
# mysql -h192.168.246.253 -P 3306 -uroot -pqf123 -e 'show databases;'
-h	指定主机名            【默认为localhost】
-大P	MySQL服务器端口       【默认3306】
-u	指定用户名             【默认root】
-p	指定登录密码           【默认为空密码】
-e	接SQL语句,可以写多条拿;隔开
# mysql -h192.168.246.253 -P 3306 -uroot -pqf123 -D mysql -e 'select * from user;'
此处 -D mysql为指定登录的数据库
修改端口rpm安装:vim /etc/my.cnf
在到【mysql】标签下面添加port=指定端口。重启服务
2.创建用户
方法一:CREATE USER语句创建
mysql> create user tom@'localhost' identified by 'qf@123'; #创建用户为tom,并设置密码。
mysql> FLUSH PRIVILEGES; #更新授权表
注:
identified by :设置密码
在用户tom@'  ' 这里 选择:
%:允许所有主机远程登陆包括localhost。也可以指定某个ip,允许某个ip登陆。也可以是一个网段。
localhost:只允许本地用户登录
==客户端主机	    %				     所有主机远程登录
			192.168.246.%		    192.168.246.0网段的所有主机
			192.168.246.252		    指定主机
			localhost               只允许本地用户登录
GRANT  ---授权。
mysql> GRANT ALL ON *.* TO 'user3'@’localhost’;
            #权限 库名.表名  账户名                
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
修改远程登陆:
将原来的localhost修改为%或者ip地址
mysql> use mysql
mysql> update user set host = '192.168.246.%' where user = 'user3';
mysql> FLUSH PRIVILEGES;
3、刷新权限
修改表之后需要刷新权限
方式1:
    mysql > flush privileges;
方式二:使用命令创建用户并授权:grant   
   也可创建新账户(不过后面的版本会移除这个功能,建议使用create user) 
语法格式:
grant 权限列表  on 库名.表名 to '用户名'@'客户端主机' IDENTIFIED BY 'Qf@123';
 ==权限列表		all	 		所有权限(不包括授权权限)
			select,update	
			select, insert

#注意:root用授权时候grant授权权限不要给予
								
 ==数据库.表名	*.*			所有库下的所有表
			   web.*		web库下的所有表
			web.stu_info	web库下的stu_info表

#单独授权
给刚才创建的用户tom授权:
mysql> grant select,insert on *.* to 'tom'@'localhost';
mysql> FLUSH PRIVILEGES;
4.权限简介
权限简介

| 权限                   | 权限级别                 | 权限说明                    
| :--------------------- | :--------------------- | :------------------------------------
| CREATE                 | 数据库、表或索引          | 创建数据库、表或索引权限                 
| DROP                   | 数据库或表               | 删除数据库或表权限                       
| GRANT OPTION           | 数据库、表或保存的程序     | 赋予权限选项 #小心给予                 
| ALTER                  | 表                     | 更改表,比如添加字段、索引等               
| DELETE                 | 表                     | 删除数据权限                             
| INDEX                  | 表                     | 索引权限                               
| INSERT                 | 表                     | 插入权限                               
| SELECT                 | 表                     | 查询权限                               
| UPDATE                 | 表                     | 更新权限                               
| LOCK TABLES            | 服务器管理              | 锁表权限                               
| CREATE USER            | 服务器管理             | 创建用户权限                             
| REPLICATION SLAVE      | 服务器管理             | 复制权限                                 
| SHOW DATABASES         | 服务器管理             | 查看数据库权限
5、查看权限
查看权限
1.看自己的权限:
mysql> SHOW GRANTS\G
*************************** 1. row ***************************
Grants for root@%: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION
    
2.看别人的权限:
mysql> SHOW GRANTS FOR tom@'localhost'\G
*************************** 1. row ***************************
Grants for tom@localhost: GRANT SELECT, INSERT ON *.* TO 'tom'@'localhost'
6、移除权限
移除用户权限
语法:REVOKE 权限 ON 数据库.数据表 FROM '用户'@'IP地址';
- 被回收的权限必须存在,否则会出错
- 整个数据库,使用 ON datebase.*;
- 特定的表:使用 ON datebase.table;

mysql> revoke select,delete on *.* from jack@'%';   #回收指定权限
mysql> revoke all privileges on *.* from jack@'%';  #回收所有权限
mysql> flush privileges;
7、修改密码
===root修改自己密码
方法一:
语法: mysqladmin -uroot -p'123' password 'new_password'	    #123为旧密码
案例:
# mysqladmin -uroot -p'qf123' password 'qf@123';
方法二:
mysql>SET PASSWORD='new_password';

==root修改其他用户密码
mysql> use mysql
mysql> SET PASSWORD FOR user3@'localhost'='new_password'
                                用户     =  新密码
8、删除用户
方法一:DROP USER语句删除
DROP USER 'user3'@'localhost';

方法二:DELETE语句删除
DELETE FROM mysql.user  WHERE user='tom' AND host='localhost';

更新授权表:	FLUSH PRIVILEGES;
9、查看密码复杂度

MySQL 默认启用了密码复杂度设置,插件名字叫做 validate_password,初始化之后默认是安装的如果没有安装执行下面的命令会返回空或者没有值,这时需要安装该插件

安装插件
mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';
1.查看密码复杂度
mysql> show variables like 'validate%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+

参数解释:
validate_password_length :#密码最少长度,默认值是8最少是0
validate_password_dictionary_file:#用于配置密码的字典文件,字典文件中存在的密码不得使用。
validate_password_policy: #代表的密码策略,默认是MEDIUM
validate_password_number_count :#最少数字字符数,默认1最小是0
validate_password_mixed_case_count :#最少大写和小写字符数(同时有大写和小写),默认为1最少是0
validate_password_special_char_count :#最少特殊字符数,默认1最小是0

2.查看密码策略
mysql> select @@validate_password_policy;
+----------------------------+
| @@validate_password_policy |
+----------------------------+
| MEDIUM                     |
+----------------------------+
1 row in set (0.00 sec)

策略:
- 0 or LOW 设置密码长度(由参数validate_password_length指定)
- 1 or MEDIUM 满足LOW策略,同时还需满足至少有1个数字,小写字母,大写字母和特殊字符
- 2 or STRONG 满足MEDIUM策略,同时密码不能存在字典文件(dictionary file)中

3.查看密码的长度
mysql> select @@validate_password_length; 
+----------------------------+
| @@validate_password_length |
+----------------------------+
|                          8 |
+----------------------------+
1 row in set (0.00 sec)

4.设置密码复杂度
mysql> set global validate_password_length=1; #设置密码长度为1个
mysql> set global validate_password_number_count=2; #设置密码数字最少为2个

5.设置密码复杂性策略
mysql> set global validate_password_policy=LOW; 也可以是数字表示。#设置密码策略

mysql> flush privileges; #刷新授权
10、权限控制机制s
四张表:user   db    tables_priv  columns_priv
1.用户认证
查看mysql.user表
2.权限认证
以select权限为例:
1.先看 user表里的select_priv权限
 Y:不会接着查看其他的表  拥有查看所有库所有表的权限
 N:接着看db表
2.db表:  #某个用户对一个数据库的权限。
 Y:不会接着查看其他的表  拥有查看所有库所有表的权限
 N:接着看tables_priv表
3.tables_priv表:#针对表的权限
 tables_priv:如果这个字段的值里包括select  拥有查看这张表所有字段的权限,不会再接着往下看了
 tables_priv:如果这个字段的值里不包括select,接着查看下张表还需要有column_priv字段权限
4.columns_priv:针对数据列的权限表
 columns_priv:有select,则只对某一列有select权限
             没有则对所有库所有表没有任何权限
 注:其他权限设置一样。
 
# 授权级别排列

- mysql.user #全局授权
- mysql.db #数据库级别授权
- 其他     #表级,列级授权


标签:权限,管理,密码,mysql,validate,password,localhost
From: https://blog.51cto.com/u_15135903/7499501

相关文章

  • 三、(1)关系型数据库管理系统介绍
    1、什么是数据库数据库就是一个存放计算机数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来对数据进行组织和存储的,可以通过数据库提供的多种方法来管理其中的数据。2、数据库的种类最常用的数据库模式主要有两种,即关系型数据库和非关系型数据......
  • 学信息系统项目管理师第4版系列08_管理科学基础
    1. 科学管理的实质1.1. 反对凭经验、直觉、主观判断进行管理1.2. 主张用最好的方法、最少的时间和支出,达到最高的工作效率和最大的效果2. 资金的时间价值与等值计算2.1. 资金的时间价值是指不同时间发生的等额资金在价值上的差别2.2. 把资金存入银行,经过一段时间后也......
  • openGauss学习笔记-71 openGauss 数据库管理-创建和管理普通表-删除表中数据
    openGauss学习笔记-71openGauss数据库管理-创建和管理普通表-删除表中数据在使用表的过程中,可能会需要删除已过期的数据,删除数据必须从表中整行的删除。SQL不能直接访问独立的行,只能通过声明被删除行匹配的条件进行。如果表中有一个主键,用户可以指定准确的行。用户可以删除匹配......
  • 进程管理4以及信号控制进程
    一:Linux系统中的job和process这个job就是系统中的任务,系统会管理每个Shell并分配一个jobnumber(任务号码),如果你子啊一个命令行上执行了多个命令,系统会将整个过程看作一项任务。一个进程可以作为一项任务,多个进程也可以作为一项任务。任务也分前台任务和后台任务,前台任务会与键盘......
  • C++ 学习笔记、01 | 开发简单职工管理系统遇到的一些问题
    记录开发简单职工管理系统遇到的一些问题,黑马教程https://www.bilibili.com/video/BV1et411b73ZP147~P166头文件与源文件头文件只声明,源文件来实现(本质上是类内声明类外实现)源文件需要引用特定的头文件ifndefOOPFINAL_WORKER_H#defineOOPFINAL_WORKER_H#include<......
  • 修改pip配置文件pip.ini显示权限不足,无法写入时该如何解决
    如题,尝试修改pip配置pip3configsetglobal.index-urlhttps://pypi.tuna.tsinghua.edu.cn/simple时出现如下报错: WritingtoC:\ProgramFiles\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\pip.iniERROR:Unabletosaveconfigura......
  • 前端学习笔记202308学习笔记第八十伍天scss的模块化管理样式
        ......
  • 使用 Osql 工具管理 SQL Server 桌面引擎 (MSDE 2000)
    概要osql。可执行文件Sql.exe在MSDE2000的默认实例的MSSQL/Binn文件夹中。本文重点讨论如何通过使用osql工具管理MSDE2000。何为Osql?osql工具是一个MicrosoftWindows32命令提示符工具,您可以使用它运行Transact-SQL语句和脚本文件。osql工具使......
  • 自动加药装备与水质监测系统解决方案,优化水处理管理
    随着社会的发展,工业、农业和生活等各个领域对水的需求量不断增加,同时对于水质的逛逛也愈发重视。为了确保供水系统的正常运行以及水质的安全,采用自动加药装备与水质监测系统解决方案成为污水处理厂的必然需求之一。自动加药装备是利用可编程逻辑控制器PLC实现自动化加药的设备,水质......
  • 智慧工地管理系统的功能模块有哪些?
    智慧工地管理系统将人工智能技术、传感器技术、虚拟现实技术等更多高新技术嵌入到建筑、机器、人员佩戴的设备、工地出入口大门等各种物体中,广泛互联形成“物联网技术”,再与“互联网技术”融合,完成项目管理利益相关者与项目施工现场的融合。智慧施工现场的关键是以“更智能”的形式......