MySQL数据库8(十八)用户权限管理

用户权限管理

用户权限管理:在不同的项目中给不同的角色(开发者)不同的操作权限,为了保证数据库数据的安全

用户管理

Mysql需要客户端进行连接认证才能进行服务器操作,需要用户信息。Mysql中所有用户的信息都保存在mysql数据库下的user表中。

默认的,在安装mysql的时候,如果没有创建匿名用户,那么意味着所有的用户只有一个;root超级用户

PS:修改root用户密码: alter user‘root‘@‘localhost‘ identified by ‘新密码‘;

在mysql中,对用户的用户管理中,是由对应的host和user共同组成主键来区分用户;

User:代表用户的用户名

Host:代表本机是允许访问的客户端(ip或者主机地址)。如果host使用*,代表所有的用户(客户端)都可以进行访问

创建用户

理论上讲,可采用两种方案创建用户:

1、直接使用root用户在mysql.user表中插入记录(不推荐)

2、专门用于创建用户的SQL指令

基本语法:create user ‘username‘@‘host‘ identified by ‘password’;

username:你将创建的用户名

host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%。通配符%可以用作整个主机名,或者用作主机名的一部分。如果主机名为空,表示是一个通配符,但比%通配符通配范围低。

password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器

查看mysql.user是否存在新增的用户

简化创建用户

删除用户

注意:mysql中user是带着host本身的(具有唯一性)

基本语法:drop user ‘username‘@‘host‘;

修改用户密码

Mysql中提供了多种修改的方式,基本上都必须使用对应提供的一个系统函数:password(),需要靠该函数对密码进行加密处理。

使用专门的修改密码的指令

基本语法: set password for ‘username‘@‘host‘ = ‘newpassword’;

如果是当前用户:set password = ‘newpassword’;

权限管理

在mysql中将权限管理分为三类:

1、数据权限:增删改查(select、update、delete、insert)

2、结构权限:结构操作(create、drop)

3、管理权限:权限管理(create user、grant、revoke):通常只给管理员如此权限

授予权限:grant

将权限分配给指定的用户:

基本语法:grant 权限列表 on 数据库/*.表名/* to 用户;

权限列表:使用逗号分隔,但是可以使用all privileges 代表全部权限

数据库.表名:可以是单表(数据库名字.表名),可以是具体某个数据库(数据库.*),也可以是整库(*.*)

具体权限查看:单表权限只能看到数据库中的一张表

Show语句的一个变体用来查看用户被授予的权限:

show grants for user;

取消权限:revoke

权限回收:将权限从用户手中收回。

基本语法:revoke 权限列表/all privileges on 数据库/*.表名/* from 用户;

权限回收,同样不需要刷新,用户马上就会感受到

刷新权限:flush

(1)Flush;刷新,将当前对用户的权限操作,进行一个刷新,将操作的具体内容同步到对应的表中。此操作需要在mysql命令提示符下执行(需要以管理员身份登录)。

基本语法:flush privileges;

(2)mysqladmin flush-privileges

(3)mysqladmin reload

(2)和(3)需要在操作系统环境下运行。

最后,mysql服务器将在重新启动时重新载入授权表。

当用户下次再连接时,全局级别权限将再次被检查。当下一个use语句触发时,数据库权限将被检查,而表级别和列级别权限将在用户下次请求时检查。

密码丢失找回

如果忘记了root用户密码,就需要去找回或者重置root用户密码

https://blog.csdn.net/gupao123456/article/details/80766154

原文地址:https://www.cnblogs.com/sun-yanglu/p/9612806.html

时间: 2024-10-12 17:39:35

MySQL数据库8(十八)用户权限管理的相关文章

【初学菜鸟作-MySQL数据库表的基本操作与权限管理】

表基本操作练习 1 复制用户信息表user的所有记录到userdb表里. mysql> create table userdb select * fromuser; 2 查看userdb表的表结构 mysql> desc userdb; 3 删除userdb表的所有记录 mysql> delete from userdb 4 把name字段设置为index字段 mysql> create index name on userdb(name) 5 添加编号字段id  在所有字段上方,

上课笔记第三十一天MySQL并发控制、引擎、用户权限管理、查询缓存

1.MySQL并发控制机制        并发控制:每个会话会启动一个mysql线程               服务器层:用于控制锁               存储引擎层:并发访问控制基本上应该由存储引擎层完成 锁:lock                读锁:共享锁                写锁:独占锁 锁力度:                 表级锁:myisam表级锁                 行级锁:innodb行级锁 锁分类:                 隐式锁:由

MYSQL数据库学习十八 数据库维护和性能提高

18.1 数据备份 可能造成数据损失的原因有: 存储介质故障 用户的错误操作 服务器的彻底瘫痪 18.1.1 复制数据文件(只适合存储引擎为MyISAM的表) 18.1.2 mysqldump 1.备份一个数据库 mysqldump -u username -p dbname table1 table2 …tablen //如果没有参数table,表示备份整个数据库 > backupname.sql 2.备份多个数据库 mysqldump -u username -p --databases d

MySQL数据库(七)—— 用户管理和权限管理

一.管理用户 1.查询用户 第一步:切换到MySQL数据库 use mysql; 第二步:查询user表 select * from user; 两条记录都是root用户 ,其中第一条记录表示本机访问,第二条记录是远程访问. 注意:通配符%表示可以在任意主机登录查询数据库 2.新增用户 语法:create user '用户名'@'主机名' identified by '密码'; 3.删除用户 语法:drop user '用户名'@'主机名' 4.修改用户密码 语法:update user set

Mysql用户&权限管理

1.创建用户(相关表mysql.user) localhost root 本机 127.0.0.1  root 本机 ::1 root 本机 % cheng 远程用户(任意ip) 192.168.1.55 jake 远程用户(指定ip) 1).创建本地用户(只能在本机登陆本机数据库) create user 'cheng'@'localhost' identified by '123456';指定密码"123456". insert into mysql.user(Host,User,

MySQL数据库(五)—— 用户管理、pymysql模块

用户权限管理.pymysql模块 一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv > columns_priv user #该表放行的权限,针对:所有数据,所有库下所有表,以及表下的所有字段 db #该表放行的权限,针对:某一数据库,该数据库下的所有表,以及表下的所有字段 tables_priv #该表放行的权限.针对:某一张表,以及该表下的所有字段 columns_priv #该

mysql用户权限管理

mysql数据在实际生产环境中大量被使用,那平时在做好服务器上防火墙策略以外平时,对mysql下的用户权限也要严格管理,mysql的用户权限都是放在mysql.user这张表里,平时的用户权限管理都是隐式使用着这张表的,先说下权限: 权限 意义 select 查询 insert 插入 update 更新 delete 删除记录,一般用于清空表或者某一条记录 create 创建 drop 删除,从表空间里删除 grant 授予,一般用于给用户授权 references 引用 index 索引 al

【转载】SQL Server 2005数据库用户权限管理的设置

SQL Server 2005数据库中,我们可以设置每个用户对应的权限,以提高数据库的安全性.这类用户权限设置的应用非常广泛.比如设置某个用户访问某个表的权限,甚至是CRUD的权限,更小粒度的还可以去到某几个字段的访问权限等等.其实这一设置过程是很简单的,接下来就让我们来一起学习吧. 一.操作步骤 1. 首先进入数据库级别的[安全性]-[登录名]-[新建登录名] (图1:新建登录名) 2. 在[常规]选项卡中,如下图所示,创建登陆名,并设置默认的数据库. (图2:设置选项) 3. 在[用户映射]

RBAC用户权限管理数据库设计

http://minjiechenjava.iteye.com/blog/1759482 RBAC用户权限管理数据库设计 博客分类: RBAC 权限设计 RBAC RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成"用户-角色-权限"的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数