学学MySQL(一)——用户管理和权限管理

在实际应用中,我们经常会有这样一种需求——某一个项目的开发团队只能对其正在进行项目的数据库及数据表进行增删改查操作,而无权对其他项目的数据库进行上述操作,这就不能单单使用一个 root 用户来搞定,需要我们为 MySQL 添加普通用户并赋予相应权限。

1.创建/ 移除一个MySQL 普通用户:

mysql> createuser ‘newuser’@’%’ identified by ‘thepassword’;

一旦用户被创建,包括加密的密码、权限和资源限制在内的所有账号细节都会被存储在名为 mysql.user 的表中。

查看用户是否创建成功:

mysql> selectu.user,u.host,u.password from mysql.user where u.user=’newuser’;

删除用户对应的命令为drop user :

mysql> dropuser ‘newuser’@’%’;

补充:当然上面列出的是文艺青年的做法,如果你硬要做普通青年,也可以直接操作 mysql 数据库的 user 表来创建 / 移除用户:

mysql> usemysql;

mysql> insertinto user values (‘%‘,‘newuser‘,‘*AEA2E7D4D184B6C8F2702761DCC05BCF4421E31A‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘N‘,‘‘,‘‘,‘‘,‘‘,30,0,10,5);

mysql> deletefrom user where user=’newuser’ and host=’%’;

2.对用户权限进行操作:

刚创建的 MySQL 用户没有任何访问权限,这种用户当然不能在 MySQL 数据库中进行任何操作,以下是相关权限级别:

all: 所有可用的权限

select: 查看库、表、视图和索引

update: 修改表或列

delete: 删除行

insert: 插入行(注:该权限不能插入列,插入列相当于 alter 操作)

create: 创建库、表和索引(不能创建视图,需要create view权限;同时,也不能创建临时表)

alter: 修改表,包括添加列,修改表的字段属性及长度等

drop: 删除库、表、视图和索引(对于视图来说,没有具体的 drop view 权限,只要用户有 drop 权限就可以通过 drop view 命令删除视图,这一点与 create 权限有别)

references: 操作外键

index: 操作索引

create view: 创建视图

show view: 查看视图(在具体实验中感觉该权限有没有并不影响查看视图,如果视图已经创建,即便没有该权限,可以使用show tables; 命令查看,同时也可以使用 select 查看其详细数据)

create temporarytables: 创建临时表(create 权限不涵盖该权限)

create routine: 创建存储过程、函数

alter routine: 修改存储过程、函数

execute: 执行存储过程、函数

(1)为 newuser 用户授权:

mysql> grant<privileges> on <database>.<table> to ‘newuser’@’%’;

其中,<privileges>代表要授予的权限,<database>.<table>代表要授予的具体数据库及数据表,可以使用通配符 * ,最后代表要授予的用户及 host 。

注:这里需要特别说明的一点是,如果将 create / drop 权限授予全部数据库及数据表,如下所示:

mysql> grantcreate on *.* to ‘newuser’@’%’;

则 newuser 用户可以新建数据库及数据表;反之,如果只将 create / drop 权限授予某个数据库,如下所示:

mysql> grantcreate on proving.* to ‘newuser’@’%’;

则 newuser 用户只能在 proving 数据库下创建数据表,而不能创建新的数据库。

(2)查看 newuser 用户所拥有的权限:

mysql> showgrants for ‘newuser’@’%’;

(3)删除 newuser 用户拥有的权限:

mysql> revoke<privileges> on <database>.<table> from ‘newuser’@’%’;

参数与授权时代表的含义相同,只是授权为 grant … to … ,取消授权为 revoke … from … 。

删除 newuser 用户对 proving 数据库中所有表的数据修改权限:

mysql> revokeupdate on proving.* from ‘newuser’@’%’;

3.对用户资源进行操作:

除了对用户进行权限操作以外,还能单独设置 MySQL 的资源使用限制,可用的资源限制如下:

MAX_QUERIES_PER_HOUR  每小时允许的最大请求数量

MAX_UPDATES_PER_HOUR  每小时允许的最大更新数量

MAX_CONNECTIONS_PER_HOUR 每小时允许的最大连接数量

MAX_USER_CONNECTIONS  所有用户对服务器的同时连接数量

使用如下命令为newuser 用户增加资源限制:

mysql> grantusage on <database>.<table> to ‘newuser’@’%’ with<resource-limits>;

在 <resource-limits>中可以指定多个使用空格分隔开的资源资源限制,如:

mysql> grantusage on proving.* to ‘newuser’@’%’ with max_queries_per_hour 30max_connections_per_hour 6;

暂时不知道如何取消这些资源限制,这里先做一个大概了解。

注:

通过 grant 、 revoke 修改过用户权限后,即便使用

mysql> flushprivileges;

命令,该用户也只有在从新连接 MySQL时,新修改的权限才会生效。mysql 库中的授权表共有 5 个,分别是 user、db、host、tables_priv、columns_priv。权限范围越来越小,先做大概了解。

有关权限推荐一篇写的比较详细的博客,写的很清晰,看完以后感觉收获很大,地址如下:

http://www.cnblogs.com/Richardzhu/p/3318595.html

时间: 2024-12-10 07:31:42

学学MySQL(一)——用户管理和权限管理的相关文章

MySQL数据库(7)_用户操作与权限管理、视图、存储过程、触发器、基本函数

用户操作与权限管理 MySQL用户操作 创建用户 方法一: CREATE USER语句创建 CREATE USER "用户名"@"IP地址" IDENTIFIED BY "密码"; 方法二: INSERT语句创建 INSERT INTO mysql.user(user,host, password,ssl_cipher,x509_issuer,x509_subject) VALUES('用户名','IP地址',password('密码'),'',

mysql用户操作和权限管理

用户操作与权限管理 MySQL用户操作 创建用户 方法一: CREATE USER语句创建 CREATE USER "用户名"@"IP地址" IDENTIFIED BY "密码"; 方法二: INSERT语句创建 INSERT INTO mysql.user(user,host, password,ssl_cipher,x509_issuer,x509_subject) VALUES(‘用户名’,’IP地址’,password(‘密码’),’’,

用户管理和权限管理

用户管理和权限管理 用户账号:用户.组 /etc/ passwd用户账号家目录属性 shadow用户密码和使用期限 group组账号家目录属性 gshadow组密码和使用期限 Linux用户 UID:0-65535(一般0-60000) 管理员:0 系统用户 centOS6:1-499 centOS7:1-999 登录用户 centOS6:500---60000 centOS7:1000---60000 /etc/shadow 加密与解密 加密就是将明文加密到密文 解密就是将密文还原到明文 破解

用户管理!权限管理!重定向

用户管理 useradd  -u, -g,-G(附加组),-c,-d, -s, -r(创建系统用户), -M(不创建家目录), 思考题:删除yhy用户家目录,如何还原(root用户重新创建yhy的家目录,拷贝/etc/skel/.bash* 的三个文件到/etc/yhy/下即可) usermod -u, -g, -G, -a, -c, -l(修改用户名), -s, -L(锁定用户密码), -U(解锁用户密码) userdel -r(同时删除家目录) passwd -d(删除用户密码),-e(设置

Linux用户及文件权限管理

用户及文件权限管理 一.实验介绍 1.1 实验内容 Linux 中创建.删除用户,及用户组等操作. Linux 中的文件权限设置. 1.2 实验知识点 Linux 用户管理 Linux 权限管理 二.Linux 用户管理 通过第一节课程的学习,你应该已经知道,Linux 是一个可以实现多用户登陆的操作系统,比如"李雷"和"韩梅梅"都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是放在同一个物理磁

Linux之用户及文件权限管理

Linux之用户及文件权限管理 前言:Linux 是一个多用户的操作系统:Linux哲学思想之一-"一切皆文件".说明在学习Linux过程中,用户及文件权限的管理是非常重要滴.本文主要是引用了CentOs/RedHat 7.1的命令. 一.用户.组管理 1).用户.组类型: 超级用户(管理员):root用户具有一切权限,只有在进行系统维护(如创建用户.分配权限)时用到:由于root用户权限过大,为了避免管理员的误操作导致不可逆的后果,所以在非必要的情况下不用root用户登录. 普通用户

用户与用户组权限管理详解

用户及用户组权限管理    Linux是一个多任务多用户的系统,多用户可以同时登陆同一台主机.为了考虑到每个人的隐私权和工作空间,这时候文件所有者(owner)就是即用户的角色就变得尤为重要了,同时为了用户与用户之间方便合作,共享一些公共资源,这时,为了实现资源的快速分配,我们把多个用户放在一个公共的空间,分别赋予他们不同的读写执行等操作的权限,这些用户共同组成的一个整体,就是所谓的用户组(group). 第一部分 Linux权限管理 用命令ls -l可以列出用户的权限. #ls -l 这里我们

2.4、使用Django自带的admin用户管理,权限管理

如何创建项目请参考2.2.创建项目. 通常web服务会要求注册的用户通过用户名和密码登录,然后才可能管理自己的信息或者对一些页面进行授权,判断用户是否拥有执行某种操作的权限. Django已经提供了一个django.contrib.auth应用来处理登录,登出和权限验证,同时还提供了django.contrib.admin应用来管理用户.可以参考你的虚拟python环境的/lib/python27/site-packges/django/contrib/admin里面的文件和源码. 我们要做的就

Linux 基础入门----用户及文件权限管理

用户及文件权限管理 实验介绍 1.Linux 中创建.删除用户,及用户组等操作. 2.Linux 中的文件权限设置. 一.Linux 用户管理 Linux 是一个可以实现多用户登陆的操作系统,比如“李雷”和“韩梅梅”都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制 ,不同用户不可以轻易地查看.修改彼此的文件. 下面我们就来学

20150825-Linux用户管理和权限管理

概述 对于使用计算机的用户来讲,都知道要使用计算机,都需要使用用户来进行登录,并且都知道用户是什么.那么计算机如何识别用户呢?计算机通过一种所谓的认证机制来识别这个用户是不是有权限或者说是被计算机所允许登录使用计算机资源的用户. 在计算机安全模型当中,计算机的每一个可用户的.可访问的资源,通常都给他关联一个用户标识,即给计算机上的可用资源都给一个属主的身份,规定他属于谁!所以计算机对资源的权限控制,仅仅是将可用的资源授予给了计算机内部的一个标识,这个用户标识就叫做用户名,但是这个用户名对应的现实