临沂网站建设电话,电商营销推广有哪些?,discuz和wordpress区别,商标注册查询网官网文章目录MySQL用户管理用户用户信息创建用户修改用户密码删除用户数据库的权限MySQL中的权限给用户授权回收权限MySQL用户管理
与Linux操作系统类似#xff0c;MySQL中也有超级用户和普通用户之分。如果一个用户只需要访问MySQL中的某一个数据库#xff0c;甚至数据库中的某…
文章目录MySQL用户管理用户用户信息创建用户修改用户密码删除用户数据库的权限MySQL中的权限给用户授权回收权限MySQL用户管理
与Linux操作系统类似MySQL中也有超级用户和普通用户之分。如果一个用户只需要访问MySQL中的某一个数据库甚至数据库中的某一个表那么可以为其创建一个普通用户并为该用户赋予对应的权限而不让该用户看到数据库中的其他数据防止该用户对其他数据进行误操作。
用户
用户信息 用户信息 MySQL当中默认有一个名为mysql的数据库。如下 查看该数据库中的表可以看到其中有一个名为user的表。如下 user表中存储的就是MySQL中用户相关的信息。如下 部分字段说明
user 表示该用户的用户名。host 表示该用户可以从哪个主机登录localhost表示只能从本机登录%表示可以从任意地方登录。authentication_string 表示该用户的密码经过password函数加密后的值。xxx_priv 表示该用户是否拥有对应权限。
在查看用户信息时为了避免刷屏可以只选择其中的部分字段进行显示。如下 需要注意的是MySQL中可以存在同名的用户只要这些同名用户对应的登录主机不同即可因为user表中的主键是复合主键由表中的user列和host列共同承担。如下 创建用户 创建用户 创建用户的SQL如下
CREATE USER 用户名登录主机 IDENTIFIED BY 密码;比如下面创建一个用户名为dragon并且可以从任意地方登录的用户。如下 创建用户成功后该用户的相关信息也就被写入到刚才的user表中了。如下 这时便可以用新创建的普通用户来连接MySQL服务器了。如下 此外由于我们创建的这个用户可以从任意地方登录因此如果你在Windows下也安装了MySQL那么就可以在Windows的cmd窗口进行远程登录。如下 说明一下
创建用户的SQL当中包含用户的密码因此该SQL不会被历史记录下来所以不能通过上下键进行追溯。MySQL本身的认证级别比较高因此创建用户时设置的密码不能太简单否则会出现报错这时你可以选择将密码设置复杂一些也可以对密码相关的设置进行调整。
通过show命令查看全局变量可以看到密码设置相关的要求。如下 修改用户密码 用户自己修改自己的密码 用户可以自己通过调用password函数将新密码加密后的值设置到自己password当中。如下 超级用户修改任意用户的密码 超级用户可以通过调用password函数将新密码加密后的值设置到指定用户的password当中。如下 删除用户 删除用户 删除用户的SQL如下
DROP USER 用户名登录地址;比如将刚才创建的用户删除后该用户在user表中对应的记录也就不存在了。如下 说明一下
删除用户时如果不指明待用户的登录地址则默认删除的是登录地址为%的用户。
数据库的权限
MySQL中的权限 MySQL中的权限 MySQL数据库提供的权限如下
权限列名上下文CREATECreate_priv数据库、表或索引DROPDrop_priv数据库或表GRANT OPTIONGrant_priv数据库、表或保存的程序REFERENCESReferences_priv数据库或表ALTERAlter_priv表DELETEDelete_priv表INDEXIndex_priv表SELECTSelect_priv表UPDATEUpdate_priv表CREATE VIEWCreate_view_priv视图SHOW VIEWShow_view_priv视图ALTER ROUTINEAlter_routine_priv保存的程序CREATE ROUTINECreate_routine_priv保存的程序EXECUTEExecute_priv保存的程序FILEFile_priv服务器主机上的文件访问CREATE TEMPORARY TABLESCreate_tmp_table_priv服务器管理LOCK TABLESLock_tables_priv服务器管理CREATE USERCreate_user_priv服务器管理PROCESSProcess_priv服务器管理RELOADReload_priv服务器管理REPLICATION CLIENTRepl_client_priv服务器管理REPLICATION SLAVERepl_slave_priv服务器管理SHOW DATABASESShow_db_priv服务器管理SHUTDOWNShutdown_priv服务器管理SUPERSuper_priv服务器管理
需要注意的是新创建的用户没有任何权限因此创建用户后需要给用户授权。
给用户授权 给用户授权 给用户授权的SQL如下
GRANT 权限列表 ON 库名.对象名 TO 用户名登录地址 [IDENTIFIED BY 密码];说明一下
用户名登录地址表示给哪一个用户授权。库名.对象名表示要授予用户哪个数据库下的哪个对象的权限。权限列表表示要授予用户何种权限多个权限之间用逗号隔开。IDENTIFIED BY 密码可选如果用户存在则在授予权限的同时修改该用户的密码如果用户不存在则创建该用户。
比如下面创建用户dragon并授予用户在user_management数据库下所有对象的select权限。如下 授权后通过show grants for 用户名登录地址命令可以查看该用户现有的权限。如下 说明一下
创建用户后该用户默认会有USAGE权限该权限只能用于数据库登录不能执行任何操作。*.*表示所有数据库的所有对象库名.*表示某个数据库的所有对象表、视图、存储过程等。
此时该用户查看数据库时就能查看到user_management数据库了。如下 说明一下
创建用户后该用户默认只能看到information_schema数据库该数据库中保存的是MySQL服务器所维护的所有其他数据库的信息。
进入user_management数据库后也能查看其中的所有表。如下 但该用户目前只能查看表中的信息而不能对表中的数据进行修改因为我们只授予了该用户select权限。如下 下面将user_management数据库下的所有权限都授予该用户。如下 这时该用户才可以对表中的数据进行其他操作。如下 回收权限 回收权限 回收权限的SQL如下
REVOKE 权限列表 ON 库名.对象名 FROM 用户名登录地址;说明一下
回收权限的语法与授权一样只不过将to关键字改为了from并且没有了IDENTIFIED BY 密码字段。
比如下面将dragon用户在user_management数据库下的所有权限回收。如下 说明一下
回收用户在某一数据库下的权限后在该用户下一次进入该数据库时才会起作用。如果回收权限时该用户正在使用对应数据库那么回收权限后该用户仍然拥有对应的权限。