建设网站成都,无锡网站seo,做网站的去那里接单,WordPress搜索插件主题文章目录 查看用户信息创建用户修改密码删除用户授予权限收回权限 查看用户信息
在名为mysql的数据库中有一个表user维护着 MySQL 的用户信息。 其中#xff1a;
user#xff1a; 表示该用户的用户名。host#xff1a; 表示该用户可以从哪个主机登录#xff0c;localhost… 文章目录 查看用户信息创建用户修改密码删除用户授予权限收回权限 查看用户信息
在名为mysql的数据库中有一个表user维护着 MySQL 的用户信息。 其中
user 表示该用户的用户名。host 表示该用户可以从哪个主机登录localhost 表示只能从本机登录127.0.0.1% 表示可以从任意地方登录。authentication_string 表示该用户的密码经过 password 函数加密后的值。xxx_priv 表示该用户是否拥有对应权限。
其中 password 函数可以对参数进行摘要。
尝试查看它们的值 由于 user 表中 Host 和 User 属性共同作为联合主键所以只要用户名和主机 IP 的组合唯一即可这是合理的一台主机可能有多个用户。
MySQL 的所有用户管理工作都通过 user 表来进行实际上后续所有的用户操作都会被 MySQL 解析为 SQL 来执行并且允许用户直接通过 SQL 对 user 表修改。例如通过 INSERT 添加用户UPDATEpassword 函数来修改用户密码登操作都是可行的。但是这只能作为特殊情况的补救措施因为这么做有风险。
创建用户
SQL
CREATE USER 用户名登录主机 IDENTIFIED BY 密码;如果你设置的密码过于简单由于 MySQL 的密码策略等级会出现以下错误
Your password does not satisfy the current policy requirements通过SHOW VARIABLES LIKE validate_password%;查看密码策略从而设计符合条件的密码。 或者修改密码策略
set global validate_password_policy0;
set global validate_password_length1;创建用户
create user new_user% identified by 12345;现在可以以新用户的身份登录 MySQL
mysql -unew_user -p登录后可以查看客户端信息 由于%表示允许来自任何主机的用户登录所以在远端登录 MySQL 的方式也是一样的。需要注意的是可能在连接时会不被允许这可能是服务端主机没有开放 3306MySQL 服务器端口为了测试可以在/etc/mysql.cnf修改 MySQL 的端口配置为测试端口如 8080。实际应用中数据库不对外开放而只在内网中使用。
修改密码
用户自己修改密码
set passwordpassword(新密码);超级用户修改任意用户的密码
set password for 用户名登录主机password(新密码);删除用户
SQL
DROP USER 用户名登录地址;注意如果不指明待用户的登录地址则默认删除的是登录地址为 % 的用户。
授予权限
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服务器管理
新创建的用户没有任何权限创建用户后需要给用户授权。
GRANT 权限列表 ON 库名。对象名 TO 用户名登录地址 [IDENTIFIED BY 密码];其中
用户名登录地址表示给哪一个用户授权。库名。对象名表示要授予用户哪个数据库下的哪个对象的权限。权限列表表示要授予用户何种权限多个权限之间用逗号隔开。IDENTIFIED BY 密码可选如果用户存在则在授予权限的同时修改该用户的密码如果用户不存在则创建该用户。
例如授予用户new_user在curd_db数据库下所有对象的select权限
grant select on curd_db.* to new_user% identified by 12345;这样新用户就能看到 curd_db 这个数据库了。 查看用户的权限 其中
创建用户后该用户默认会有 USAGE 权限该权限只能用于数据库登录不能执行任何操作。*.*表示所有数据库的所有对象库名。*表示某个数据库的所有对象表、视图、存储过程等。information_schema 数据库保存的了 MySQL 服务器所维护的所有其他数据库的信息。新用户默认只能看到它。
但是目前只有 select 权限不能对数据库内容做修改。授予new_user在curd_db数据库下以所有权限
grant all on curd_db.* to new_user%;收回权限
REVOKE 权限列表 ON 库名。对象名 FROM 用户名登录地址;注意
回收用户在某一数据库下的权限后在该用户下一次进入该数据库时才会起作用。如果回收权限时该用户正在使用对应数据库那么回收权限后该用户仍然拥有对应的权限。