MySQL数据库使用——MySQL用户管理

  • 文件版本说明
  • MySQL简介
  • 下载安装
    • linux环境安装
    • window环境安装
  • 用户登录与登出
    • 创建用户CREATE USER
    • 修改用户名与密码SET
    • 删除用户DROP
  • 用户权限管理
    • 赋予用户权限GRANT
    • 显示用户权限SHOW GRANTS
    • 回收用户权限REVOKE
    • 保存设置FLUSH PRIVILEGES
  • 权限限制与远程访问限制
    • 创建对应用户

文件版本说明

版本 颁布日期 修订章节 作者
0.1 2017.09.24 撰写草稿 钟鑫
0.2 2017.10.22 添加MySQL数据库管理和用户管理 钟鑫
0.3 2017.11.04 添加数据库管理以及表的管理 钟鑫
0.4 2017.11.05 添加表管理以及字段管理 钟鑫
0.5 2017.11.07 添加MySQL值操作 钟鑫
0.6 2017.11.08 添加加密函数 钟鑫
0.7 2017.11.12 添加表与表之间的关联 钟鑫
0.8 2017.11.18 添加MySQL代码操作API 钟鑫
0.9 2017.11.19 添加MySQL代码C的API 钟鑫
1.0 2017.11.25 添加MySQL代码的C++API 钟鑫
1.1 2017.11.26 完善MySQL代码的C++API 钟鑫
1.2 2017.11.27 添加MySQl异常类说明 钟鑫
1.3 2017.11.28 添加C++ API查询结果 钟鑫
1.4 2017.12.03 整理数据查询关联 钟鑫

MySQL简介

百度百科:https://baike.baidu.com/item/mySQL/471251?fr=aladdin

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

下载安装

linux环境安装

1、 安装MySQL服务端:

sudo apt-get install mysql-server

2、 安装MySQL客户端:

apt-get isntall mysql-client

3、 安装客户端关联库

sudo apt-get install libmysqlclient-dev

window环境安装

在官网下载MySQL版本,如下图所示。
MySQL数据库使用——MySQL用户管理_第1张图片

选择安装相应的功能以及MySQL Server,如下图所示。
MySQL数据库使用——MySQL用户管理_第2张图片

MySQL数据库使用——MySQL用户管理_第3张图片

在设置网络端口时默认选择如下图所示。
MySQL数据库使用——MySQL用户管理_第4张图片

设置root密码,设置完之后还可以添加用户,如下图所示。
MySQL数据库使用——MySQL用户管理_第5张图片

除了用户登录与登出以外,其他的用户操作例如修改用户名和密码都需要赋予操作数据库mysql中的user表权限才能使用,只能是系统管理员用户才能使用。

用户登录与登出

登录SQL命令:

mysql -uusername -p

接着输入该用户的密码即可。

登出SQL命令:

exit

创建用户:CREATE USER

登录系统用户之后,就可以使用SQL命令操作数据库

创建用户SQL命令:CREATE USER

create user 'username'@'localhost' identified by 'password';

@后面的’localhost’即为本地的端口。

执行结果

mysql> create user 'zxsql'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.08 sec)

mysql>

查看创建用户的结果

mysql> select user from mysql.user where user = 'zxsql';
+-------+
| user  |
+-------+
| zxsql |
+-------+
1 row in set (0.00 sec)

mysql>

修改用户名与密码:SET

SQL命令:

set password for 'username'@'localhost'=PASSWORD('123456');

这里调用PASSWORD()接口来使密码进行加密。

示例:修改用户zxsql密码为123456

mysql> set password for 'zxsql'@'localhost'=PASSWORD('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql>

删除用户:DROP

SQL命令:

drop user 'username'@'localhost';

用户权限管理

赋予用户权限:GRANT

用户用到的SQL权限为

ALL             : 所有可用的权限
CREATE          : 创建库、表和索引
LOCK_TABLES     : 锁定表
ALTER           : 修改表
DELETE          : 删除表
INSERT          : 插入表或列
UPDATE          : 更新表
SELECT          : 检索表或列的数据
CREATE_VIEW     : 创建视图
SHOW_DATABASES  : 列出数据库
DROP            : 删除库、表和视图

SQL命令:

grant  on . to 'username'@'localhost';
privileges  :上述列出来的权限名
database    :需要赋予的数据库名
table       :需要赋予的数据库里面的表明

赋予多个权限需要用逗号“,”分隔。

示例:赋予用户zxsql在数据库zx_mysql的所有权限;
SQL命令:

grant ALL on zx_mysql.* to 'zxsql'@'localhost';
mysql> grant all on zx_mysql.* to 'zxsql'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql>

显示用户权限SHOW GRANTS

SQL命令:

show grants for 'username'@'localhost';

当用户普通用户查看自己的权限是不需要输入名字,直接输入:

show grants;
mysql> show grants for 'zxsql'@'localhost';
+---------------------------------------------------------------+
| Grants for zxsql@localhost                                    |
+---------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'zxsql'@'localhost'                     |
| GRANT ALL PRIVILEGES ON `zx_mysql`.* TO 'zxsql'@'localhost'   |
+---------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql>

回收用户权限:REVOKE

SQL命令:

revoke  on .
from 'username'@'localhost';

示例:回收用户zxsql在数据库zx_mysql的删除表权限;
SQL命令:DELETE

revoke DELETE on zx_mysql.* from 'zxsql'@'localhost';
mysql> revoke DELETE on zx_mysql.* from 'zxsql'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> show grants for 'zxsql'@'localhost';
+-------------------------------------------------------+
| Grants for zxsql@localhost                            |
+-------------------------------------------------------+
| GRANT USAGE ON *.* TO 'zxsql'@'localhost'             |
| GRANT SELECT, INSERT, UPDATE, CREATE, DROP,           |
| REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES,    |
| LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW,         |
| CREATE ROUTINE, ALTER ROUTINE, EVENT,                 |
| TRIGGER ON `zx_mysql`.* TO 'zxsql'@'localhost'        |
+-------------------------------------------------------+
2 rows in set (0.00 sec)

mysql>

保存设置:FLUSH PRIVILEGES

设置权限可以通过修改数据库的形式进行设置,设置完毕之后需要刷新更改的权限设置。
修改权限数据库

mysql> select Db from db where user = 'zxsql';
+----------+
| Db       |
+----------+
| zx_mysql |
+----------+
1 row in set

mysql>

SQL命令:

FLUSH PRIVILEGES;
mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)

mysql>

权限限制与远程访问限制

一个数据库对应一个项目,并且指派特定的用户去访问数据库,其中分为管理员用户,和访问用户。

管理员用户:管理整个项目的数据库,包括表的创建,表中字段的创建。只能本地访问。
普通用户    :只能修改表中字段的数据内容,或者添加具体的数据内容。可以通过远程访问。

创建对应用户

管理员用户只能本地去登录访问,访问用户允许远程访问。

mysql> create user 'zxpro-admin'@'localhost' identified by 'qwerty';
Query OK, 0 rows affected
mysql> create user 'zxpro-users'@'%' identified by '123456';
Query OK, 0 rows affected
mysql>

赋予权限

mysql> grant ALL on zx_mysql.* to 'zxpro-admin'@'localhost';
Query OK, 0 rows affected

mysql> grant SELECT,INSERT,UPDATE on zx_mysql.* to 'zxpro-users'@'%';
Query OK, 0 rows affected

mysql>

你可能感兴趣的:(数据库)