MySQL SQL - 库与用户操作

一、系统库介绍

使用命令“show databases”,可以查看数据库的列表。我们可以看到4个系统自带库:information_schema、mysql、performance_schema、sys

MySQLSQL-库与用户操作

1.1 information_schema数据库

提供了访问数据库元数据的方式;元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。information_schema可以认为是一个信息数据库,它保存着关于MySQL服务器所维护的所有其他数据库的信息;事实上,在INFORMATION_SCHEMA中,有几张只读表,实际上是视图。

MySQLSQL-库与用户操作

1.2 mysql 数据库

MySQL数据库的核心数据库,主要负责存储数据库的用户、权限设置、关键字等;需要使用的控制和管理信息,不可以删除。

MySQLSQL-库与用户操作

1.3 performance_schema 数据库

MySQL 5.5 版本 新增了一个性能优化的引擎: PERFORMANCE_SCHEMA控制参数: performance_schema 才可以启动该功能,这个参数是静态参数,只能写在my.ini 中不能动态修改。

MySQLSQL-库与用户操作

1.4 sys 数据库

Sys库所有的数据源来自performance_schema,目标是把performance_schema的复杂度降低,让DBA能友好的阅读这个库里的内容。

MySQLSQL-库与用户操作

二、创建自定义数据库

2.1 语法

CREATE DATABASE [IF NOT EXISTS] <数据库名>

[[DEFAULT] CHARACTER SET <字符集名>]

[[DEFAULT] COLLATE <校对规则名>];

<数据库名>:创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文件夹命名规则,不能以数字开头,尽量要有实际意义。注意在 MySQL 中不区分大小写。

IF NOT EXISTS:在创建数据库之前进行判断,只有该数据库目前尚不存在时才能执行操作。此选项可以用来避免数据库已经存在而重复创建的错误。

[DEFAULT] CHARACTER SET:指定数据库的字符集。指定字符集的目的是为了避免在数据库中存储的数据出现乱码的情况。如果在创建数据库时不指定字符集,那么就使用系统的默认字符集。

MySQLSQL-库与用户操作

2.2 登录MySQL并创建DB

MySQLSQL-库与用户操作

MySQLSQL-库与用户操作

MySQLSQL-库与用户操作

2.3 查询数据库记录

MySQLSQL-库与用户操作

三、系统用户

3.1 mysql.infoschema

mysql.infoschema用户被设计用于访问MySQL服务器内置的information schema数据库,mysql.infoschema用户没有密码,并且无法登录到系统中。

3.2 mysql.sys

使用 mysql.sys 用户可避免DBA重命名或者删除root用户时发生的问题。该用户已被锁定,客户端无法连接

3.3 mysql.session

插件内部使用来访问服务器。该用户已被锁定,客户端无法连接。

3.4 root

该用户拥有所有权限,可执行任何操作。root是MySQL默认的特权账号,建议将root账号禁用或者删除,新建一个特权账号用于管理,避免root易于被攻击。

MySQLSQL-库与用户操作

四、自定义用户与授权

4.1 登录MySQL服务器

命令:

mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句

-h参数:后面接主机名或者主机IP,hostname为主机,hostIP为主机IP。

-P参数:后面接MySQL服务的端口,通过该参数连接到指定的端口。MySQL服务的默认端口是3306,不使用该参数时自动连接到3306端口,port为连接的端口号。

-u参数:后面接用户名,username为用户名。

-p参数:会提示输入密码。

DatabaseName参数:指明登录到哪一个数据库中。如果没有该参数,就会直接登录到mysql数据库中,然后可以使用USE命令来选择数据库。

-e参数:后面可以直接加SQL语句。登录MySQL服务器以后即可执行这个SQL语句,然后退出MySQL服务器。

MySQLSQL-库与用户操作

4.2 管理用户

  • 创建用户命令

CREATE USER 用户名 [IDENTIFIED BY '密码'][,用户名 [IDENTIFIED BY '密码']];

用户名参数: 自定义的,新建用户名,

密码参数:指定明文密码值

[ ]:表示可选,CREATE USER语句可以同时创建多个用户。

MySQLSQL-库与用户操作

  • 更新用户命令(通用的update命令,直接操作user表)

MySQLSQL-库与用户操作

  • 删除用户(Drop命令,或者直接从user表中删除也可以)

命令: DROP USER user[,user]…;

MySQLSQL-库与用户操作

  • 更改用户密码

MySQLSQL-库与用户操作

4.3 授予权限

命令:

GRANT privilege,[privilege],.. ON privilege_level

TO user [IDENTIFIED BY password]

[REQUIRE tsl_option]

[WITH [GRANT_OPTION | resource_option]]

privilege参数:指定一个或多个特权。如果要授予用户多个权限,则每个权限都将以逗号分隔(见下表中的特权列表)。

privilege_level参数:指定特权应用级别的。MySQL支持全局(*.*),数据库(database.*),表(database.table)和列级别(每个权限之后使用逗号分隔列的列表)。

User参数:要授予权限的用户。如果用户已经存在,则GRANT语句修改其特权。如不存在,则GRANT语句将创建一个新用户。

password参数:可选的条件IDENTIFIED BY允许为用户设置新密码。

tsl参数:可指定用户是否必须通过安全连接(如SSL,X059等)连接到数据库服务器。最

WITH GRANT OPTION参数子句:允许此用户授予其他用户或从其他用户删除您拥有的权限。

MySQLSQL-库与用户操作

4.4 撤销权限

命令:

REVOKE [IF EXISTS]

priv_type [(column_list)]

[, priv_type [(column_list)]] ...

ON [object_type] priv_level

FROM user_or_role [, user_or_role] ...

[IGNORE UNKNOWN USER]

参数含义与授权一致,不再赘述。

MySQLSQL-库与用户操作

4.5 附表:GRANT/REVOKE静态权限

特权

授予表列

语境

ALL [PRIVILEGES]

“所有特权”的同义词

服务器管理

ALTER

Alter_priv

ALTER ROUTINE

Alter_routine_priv

存储例程

CREATE

Create_priv

数据库、表或索引

CREATE ROLE

Create_role_priv

服务器管理

CREATE ROUTINE

Create_routine_priv

存储例程

CREATE TABLESPACE

Create_tablespace_priv

服务器管理

CREATE TEMPORARY TABLES

Create_tmp_table_priv

CREATE USER

Create_user_priv

服务器管理

CREATE VIEW

Create_view_priv

观点

DELETE

Delete_priv

DROP

Drop_priv

数据库、表或视图

DROP ROLE

Drop_role_priv

服务器管理

EVENT

Event_priv

数据库

EXECUTE

Execute_priv

存储例程

FILE

File_priv

服务器主机上的文件访问

GRANT OPTION

Grant_priv

数据库、表或存储例程

INDEX

Index_priv

INSERT

Insert_priv

表或列

LOCK TABLES

Lock_tables_priv

数据库

PROCESS

Process_priv

服务器管理

PROXY

见表proxies_priv_

服务器管理

REFERENCES

References_priv

数据库或表

RELOAD

Reload_priv

服务器管理

REPLICATION CLIENT

Repl_client_priv

服务器管理

REPLICATION SLAVE

Repl_slave_priv

服务器管理

SELECT

Select_priv

表或列

SHOW DATABASES

Show_db_priv

服务器管理

SHOW VIEW

Show_view_priv

观点

SHUTDOWN

Shutdown_priv

服务器管理

SUPER

Super_priv

服务器管理

TRIGGER

Trigger_priv

UPDATE

Update_priv

表或列

USAGE

“无特权”的同义词

服务器管理

MySQLSQL-库与用户操作

##山狗学会 License Start##

转载请注明出处,"*今条头日**"创作者"山狗学会“ ,注明出处即授权,未注明出处罚款100万元

主页链接:山狗学会主页

##山狗学会 License End##

MySQLSQL-库与用户操作