mysql 新增 删除用户和权限分配

http://lionbule.iteye.com/blog/1114072

请一定安此步骤来创建新的用户。

1. 新增用户

Sql代码 收藏代码
  1. mysql>insertintomysql.user(Host,User,Password)values("localhost","lionbule",password("hello1234"));
  2. mysql>flushprivileges;

2. 修改用户密码

Sql代码 收藏代码
  1. mysql>updatemysql.usersetpassword=password('newpassword')whereUser="lionbule"andHost="localhost";
  2. mysql>flushprivileges;

3. 删除用户

Sql代码 收藏代码
  1. mysql>DELETEFROMuserWHEREUser="lionbule"andHost="localhost";
  2. mysql>flushprivileges;

4. 权限分配

4.1.grant用法

grant权限on数据库.*to用户名@'登录主机'identified by'密码'

Doc代码 收藏代码
  1. 权限:
  2. 常用总结,ALL/ALTER/CREATE/DROP/SELECT/UPDATE/DELETE
  3. 数据库:
  4. *.*表示所有库的所有表
  5. test.*表示test库的所有表
  6. test.test_table表示test库的test_table表
  7. 用户名:
  8. mysql账户名
  9. 登陆主机:
  10. 允许登陆mysqlserver的客户端ip
  11. '%'表示所有ip
  12. 'localhost'表示本机
  13. '192.168.10.2'特定IP
  14. 密码:
  15. 账户对应的登陆密码

4.2 例子

Sql代码 收藏代码
  1. mysql>grantallontest.*tolionbule@'%'identifiedby'hello1234';
  2. mysql>flushprivileges;

新增密码为‘hello234’的用户lionbule对test库拥有所有操作权限,并不限制lionbule用户的登陆IP。

4.3 注意事项

grant 会覆盖用户的部分信息,跟insert 、update执行功能一样.

我在做宁波的考勤时,犯过以下错误: lionbule@ '%'把这个改成了locahost.第二个:改完了以后,就可以在phpmyadmin 中使用单用户访问了。
<think>好的,我现在需要解决用户关于如何删除MySQL用户创建具有全部权限的新用户的问题。用户可能在使用MySQL时遇到了权限管理的问题,或者在进行用户管理时想要了解正确的命令。我需要确保提供的命令准确且安全,同时考虑到不同版本的MySQL可能会有不同的语法要求。 首先,删除用户的命令。我记得在MySQL中,删除用户通常使用DROP USER语句,但需要注意用户的主机部分。例如,用户'username'@'localhost''username'@'%'是两个不同的用户。如果用户存在多个主机访问权限,可能需要分别删除。同时,确保用户存在,否则会报错。可能需要先检查用户是否存在,再进行删除操作。另外,MySQL 5.78.0在用户管理上是否有差异?比如是否需要先撤销权限再删除用户?或者DROP USER是否自动处理这些? 然后是创建新用户并授予全部权限。这部分需要CREATE USERGRANT命令。创建用户时需要注意密码策略,特别是MySQL 8.0之后默认使用caching_sha2_password插件,如果客户端不支持可能会导致连接问题,可能需要指定使用mysql_native_password。授予全部权限时,通常使用GRANT ALL PRIVILEGES ON *.*,但要注意这会给用户超级权限,存在安全风险,需提醒用户谨慎使用。同时,授予权限后必须执行FLUSH PRIVILEGES使权限生效,但某些情况下GRANT命令会自动刷新,可能不需要显式执行,不过为了保险起见,还是建议加上。 还需要考虑是否需要指定主机部分,比如'%'允许所有IP访问,或者限制为localhost。用户可能是在本地开发环境使用,或者是生产环境需要远程访问,这会影响主机的设置。此外,如果用户遇到ERROR 1396(HY000)删除用户失败的情况,可能需要检查用户是否存在,或者是否有残留的权限需要处理。 可能还需要提供示例命令,让用户可以直接复制粘贴使用,但需要提醒替换用户名、密码主机部分。同时,安全提示很重要,尤其是授予全部权限的风险,建议用户根据实际需要分配最小权限。 另外,考虑到用户之前的问题是关于访问被拒绝的错误,可能在删除用户创建新用户的过程中,需要确保新用户的权限正确,避免再次出现权限问题。同时,检查是否有拼写错误,比如用户名中的特殊字符是否需要转义或使用反引号包裹。 最后,需要验证提供的步骤是否正确,是否有遗漏的步骤,比如创建用户后授权,再刷新权限。可能还需要提醒用户测试新用户的连接,确保一切正常。</think>以下是删除MySQL用户创建全权限用户的详细操作指南: --- ### **一、删除用户操作** ```sql -- 1. 查看现有用户 SELECT user,host FROM mysql.user; -- 2. 删除指定用户(需指定完整用户名@host格式) DROP USER '用户名'@'主机地址'; -- 示例:DROP USER 'dev_user'@'%'; -- 3. 验证删除结果 SELECT user,host FROM mysql.user WHERE user='用户名'; ``` --- ### **二、创建全权限用户** ```sql -- 1. 创建新用户(示例密码:P@ssw0rd!2023) CREATE USER 'new_admin'@'%' IDENTIFIED BY '强密码'; -- 2. 授予全局所有权限(危险操作!生产环境慎用) GRANT ALL PRIVILEGES ON *.* TO 'new_admin'@'%' WITH GRANT OPTION; -- 3. 刷新权限 FLUSH PRIVILEGES; -- 4. 验证权限 SHOW GRANTS FOR 'new_admin'@'%'; ``` --- ### **三、安全增强方案(推荐)** ```sql -- 1. 创建受限用户(只允许特定IP段) CREATE USER 'safe_user'@'192.168.1.%' IDENTIFIED BY '复杂密码'; -- 2. 授予指定数据库权限 GRANT SELECT, INSERT, UPDATE, DELETE ON `project_db`.* TO 'safe_user'@'192.168.1.%'; -- 3. 限制管理权限 GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'safe_user'@'192.168.1.%'; ``` --- ### **关键安全建议** 1. **最小权限原则**:禁止随意授予`ALL PRIVILEGES` - 生产环境推荐权限组合:$SELECT, INSERT, UPDATE, DELETE, EXECUTE$ 2. **主机限制**: - 开发环境:`localhost` - 生产环境:`指定IP段` 3. **密码安全**: - 长度≥12位 - 包含:$大写字母 + 小写字母 + 数字 + 特殊符号$ --- ### **错误处理指南** | 错误代码 | 解决方案 | |---------|----------| | ERROR 1396 (HY000) | 检查用户是否存在`SELECT user FROM mysql.user` | | ERROR 1819 (HY000) | 加强密码复杂度,或临时降低密码策略 | | ERROR 1133 (42000) | 检查是否存在同名用户不同host的情况 | --- ### **MySQL 8.0+ 特别说明** ```sql -- 检查认证插件 SELECT user, plugin FROM mysql.user; -- 兼容旧客户端连接 ALTER USER 'new_admin'@'%' IDENTIFIED WITH mysql_native_password BY '密码'; ``` --- ### **操作验证流程** 1. 使用新用户登录测试: ```bash mysql -u new_admin -p -h 主机IP ``` 2. 执行权限测试操作 3. 检查错误日志: ```bash tail -f /var/log/mysql/error.log ``` --- > **重要提醒**:全权限用户等同于root账户,仅限用于可信的内部系统,对外服务必须使用严格受限的账户。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值