MsSql

关注公众号 jb51net

关闭
首页 > 数据库 > MsSql > SQL用户权限管理

SQL中的用户管理权限与用户详解

作者:啊吧怪不啊吧

这篇文章给大家介绍SQL中的用户管理权限与用户的相关操作,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

我们在MySQL的学习过程中一开始基本上都是使用root用户来进行各种操作的,但是其实这样是不好的,因为我们在以后工作的时候是不可能给你root用户来进行操作的,所以我们在这里要提前适应普通用户。

1. 用户相关

我们首先要学会查看用户的信息,再我看来这是第一步,接着我们在学会创建,销毁用户之类的操作。

1.1 查看已存在用户的信息

use mysql;
select host,user,authentication_string from user;

我们需要使用到上面两条指令来进行查看信息。

不知道各位有没有这个疑惑,就是我是查看用户信息又不是所有某一个数据库,为什么需要先use mysql呢?这是因为在mysql这个数据库系统里面,用户相关的各种信息也是存放在表里面的。

各位仔细看下面这张图片,这里面有三个用户,这三个用户都是系统自带的,分别是:

字段解释:

host表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆

user用户名

authentication_string用户密码通过password函数加密后的

*_priv用户拥有的权限

1.2 创建新用户

代码:

create user '用户名'@'登陆主机/ip' identified by '密码';

我们通过上面的代码就可以创建一个新用户。

在我们接下来的学习中我们创建新用户都是使用root账号来进行创建的,但是我们不可以误以为只有root账号可以创建新用户,有cheate user权限的普通用户也可以创建新用户,这个我们在后面会说到。

我们看下面这张图,这样我们就创建好一个用户。

PS:当我们使用root账号创建一个新用户的时候,这个新用户默认是没有权限的,也就是什么都做不了的,因为创建库和创建表以及select都是需要一定的权限的。

这边想要额外提一下,就是我们的那个登入主机的位置如果选的是localhost的话就是说这个账号只支持本地登入,也就是只有创建这个账号的这台设备可以登入这个用户。

如果是想要某一台设备可以登入的话,那么就在这个位置输入那台设备的ip。

如果是想要什么设备只要知道密码都可以登入的话,那么我们就在这个位置直接输入一个‘%’就可以了。

1.3 删除用户

代码:

drop user '用户名'@'主机名'

我们看,这样我们就可以把叫做‘1’的本地登入的用户给删除了。

这一步是不需要密码的,也就是不需要‘1’的密码,可以直接删除。

1.4 修改用户登入密码

这个的话又比较不同了,因为在这里可以分为用户自己修改密码和root用户来修改普通用户的密码。

用户自己修改密码:

set password=password('新的密码');

如果是普通用户自己修改密码的话,我们需要先登入那个账号。

root用户来修改密码:

set password for '用户名'@'主机名'=password('新的密码');

root的话直接指定需要修改哪一个就好了。

2. 权限相关

首先我们需要知道什么叫做权限。在MySQL中什么都是需要权限的,无论是创建查看数据库数据表或者创建删除用户,这些都是需要相应的权限我们才可以做到的。

相关的权限:

一、全局权限(作用于所有数据库)

全局权限存储在mysql.user表中,授权时用ON *.*指定:

二、数据库权限(作用于指定数据库)

数据库权限存储在mysql.db表中,授权时用ON 数据库名.*指定:

三、表权限(作用于指定表)

表权限存储在mysql.tables_priv表中,授权时用ON 数据库名.表名指定:

四、列权限(作用于表中指定列)

列权限存储在mysql.columns_priv表中,授权时需指定列(如ON 库.表 (列1,列2)):

五、存储对象权限(作用于存储过程 / 函数 / 视图)

2.1给用户权限

代码:

GRANT ALTER ON *.* TO '用户名'@'登录位置';
grant all [privileges] on 库.对象名 to '用户名'@'登陆位置' [identified by '密码']
grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码']

第一条代码的意思是授予一个用户修改所有表的权限。

第二个给指定用户授予 “指定库 / 对象” 的全部操作权限。

第三条是给一个用户关于某个库的权限。

identified by是可选, 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户。

2.2回收权限

我们可以给一个用户权限,同时也可以回收用户的权限。

代码:

revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';

到此这篇关于SQL之用户管理——权限与用户的文章就介绍到这了,更多相关SQL用户权限管理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文