计算机网络/计算机科学与应用/系统/运维/开发

MySQL 用户和数据权限管理

用户和数据权限管理

用户要访问MySQL数据库,首先必须拥有登录到MySQL服务器的用户名和口令。

登录到服务器后,MySQL允许用户在其权限内使用数据库资源。


MySQL允许用户以多种不同的方式创建和设置权限。

MySQL的用户信息存储在MySQL自带的mysql数据库的user表中。


添加和删除用户

一、 使用CREATE USER 或者 GRANT语句  (推荐)

二、 直接操作MySQL数据库 


一、添加用户

使用CREATE USER语句可以添加一个或多个用户,并设置相应的密码


语法:

CREATE  USER <用户名> [IDENTIFIED] BY [PASSWORD] '密码'


<用户名>:

创建用户账号,格式为 'user_name'@'host_name'   user_name为用户名  host_name为主机名

创建时只给定了用户名,没有指定主机名 则主机默认为 % 表示一组主机


PASSWORD:可选  指定散列口令,若使用明文设置口令,则忽略PASSWORD关键字

若不想以明文设置口令,且知道 PASSWORD() 函数返回给密码的散列值,则可以在口令设置语句中指定此散列值,但需要加上关键字PASSWORD


[IDENTIFIED] BY:

指定用户账号对应的口令,若该用户账号无口令,则可省略此子句


完整语法:

CREATE  USER  user_specification [,user_specification]  ...

user@host[

    IDENTIFIED BY [PASSWORD]  'password'  |   IDENTIFIED WITH auth_plugin [ AS 'auth_string']

]

user表创建的用户的名称 

host 表示允许登录的用户主机名称 

IDENTIFIED BY 表示用来设置用户的密码 

[PASSWORD] 表示使用哈希值设置密码  参数可选

'password' 表示用户登录时使用的普通明文密码


实例:添加一个新的用户usr1,密码为123456

mysql>CREATE  USER usr1@localhost IDENTIFIED BY '123456';


如果没有输入密码,那么MySQL允许相关的用户不使用密码登录。

但是从安全的角度并不推荐这种做法。


实例:使用CREATE USER 创建一个用户  名为jeffrey  密码 mypass 主机名localhost

CREATE  USER  'jeffrey'@'localhost'  IDENTIFIED  BY  'mypass';


如果只指定用户名部分  'jeffrey'  主机名部分则默认为 %  (对所有主机开放权限)


如果指定用户登录时不需要密码 可以省略 IDENTIFIED BY部分

CREATE  USER 'jeffrey'@'localhost';


如果要创建指定密码的用户,需要IDENTIFIED BY指定明文密码值;

为了避免明文密码,如果知道密码的散列值,可以通过PASSWORD关键字使用密码的哈希值设置密码.

CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY PASSWORD ' *6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4';


二、删除用户

DROP USER语句用于删除一个或多个MySQL账户,并取消其权限

语法:DROP  USER 用户名1 [,用户名2]...

说明:要使用DROP USER语句,必须拥有mysql数据库的全局CREATE USER权限或DELETE权限


实例:删除用户usr1

DROP  USER  usr1@localhost;


注意:如果删除的用户已经创建了表、索引或其他数据库对象,它们将继续保留,因为MySQL并没有记录是谁创建了这些对象。


mysql 创建用户

无论人生上到哪一层台阶,阶下有人在仰望你,阶上亦有人在俯视你,你抬头自卑,低头自得,唯有平视,才能看见真实的自己。

评论

image

39 2022-04-12 04:04:12

创建一个普通用户 mysql> CREATE USER 'zth'@'localhost';

回复 删除

^