您的位置:首页 > 数据库 > MySQL

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

2017-12-16 21:39 639 查看
文件版本说明

MySQL简介

下载安装
linux环境安装

window环境安装

用户登录与登出
创建用户CREATE USER

修改用户名与密码SET

删除用户DROP

用户权限管理
赋予用户权限GRANT

显示用户权限SHOW GRANTS

回收用户权限REVOKE

保存设置FLUSH PRIVILEGES

权限限制与远程访问限制
创建对应用户

文件版本说明

版本颁布日期修订章节作者
0.12017.09.24撰写草稿钟鑫
0.22017.10.22添加MySQL数据库管理和用户管理钟鑫
0.32017.11.04添加数据库管理以及表的管理钟鑫
0.42017.11.05添加表管理以及字段管理钟鑫
0.52017.11.07添加MySQL值操作钟鑫
0.62017.11.08添加加密函数钟鑫
0.72017.11.12添加表与表之间的关联钟鑫
0.82017.11.18添加MySQL代码操作API钟鑫
0.92017.11.19添加MySQL代码C的API钟鑫
1.02017.11.25添加MySQL代码的C++API钟鑫
1.12017.11.26完善MySQL代码的C++API钟鑫
1.22017.11.27添加MySQl异常类说明钟鑫
1.32017.11.28添加C++ API查询结果钟鑫
1.42017.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 Server,如下图所示。





在设置网络端口时默认选择如下图所示。



设置root密码,设置完之后还可以添加用户,如下图所示。



除了用户登录与登出以外,其他的用户操作例如修改用户名和密码都需要赋予操作数据库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 <privileges> on <database>.<table> 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 <privileges> on <database>.<table> 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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 mysql 管理
相关文章推荐