MySql用户操作:创建、删除、赋权

本文介绍了MySQL中如何创建允许外网访问的账号、删除指定账号、为账号授权及收回权限的方法,并详细列出了各种权限及其说明。

更多内容

相关sql


-- 创建 允许外网访问的账号
create user 'fungli'@'%' identified by '123456';

-- 删除 指定账号
delete from mysql.user where User = 'fungli' and Host = '127.0.0.1'

-- 创建账户并授权给指定租户
grant select privileges on `mycommunity_config_local`.* to 'fungli'@'%' identified by '123456';

-- 给账户授权
grant select on `mycommunity_config_local`.* to 'fungli'@'%';
flush privileges; 

-- 收回账户的权限
revoke select on `mycommunity_config_local`.* from 'fungli'@'%';
flush privileges;  

-- 查看用户权限
select * from information_schema.USER_PRIVILEGES where GRANTEE like '%fungli%'


权限说明

权限说明
all
alter
alter routine使用alter procedure 和drop procedure
create
create routine使用create procedure
create temporary tables使用create temporary table
create user
create view
delete
drop
execute使用call和存储过程
file使用select into outfile 和load data infile
grant option可以使用grant和revoke
index可以使用create index 和drop index
insert
lock tables锁表
process使用show full processlist
reload使用flush
replication client服务器位置访问
replocation slave由复制从属使用
select
show databases
show view
shutdown使用mysqladmin shutdown 来关闭mysql
super
update
usage无访问权限
<think>好的,用户想知道如何在MySQL创建用户并授予权限。首先,我需要回忆一下相关的步骤。记得需要以root用户或者有足够权限的用户登录MySQL。然后使用CREATE USER语句创建用户,接着用GRANT命令分配权限,最后可能需要刷新权限使更改生效。 根据引用[3],创建用户的基本命令是CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';。这里的主机可以是localhost或者远程访问的IP,这点很重要,需要提醒用户注意访问来源的设置。 接下来是授权,引用[1]和[2]都提到了GRANT命令。需要说明不同的权限级别,比如全局权限、数据库级别、表级别等。用户可能需要授予所有权限,或者特定的如SELECT、INSERT等。例如,GRANT ALL PRIVILEGES ON 数据库.* TO '用户'@'主机';,然后执行FLUSH PRIVILEGES;。 还需要提到如何撤销权限和删除用户,用REVOKE和DROP USER命令。这些补充信息可能对用户有帮助,尤其是在管理用户时。 用户可能的疑问点包括如何正确设置主机部分,以及权限的具体选项。应该用例子来说明,比如创建用户并授予特定数据库的所有权限,或者只读权限。此外,安全方面建议使用强密码,并限制权限到最小必要范围,这也是引用中提到的内容。 需要检查步骤是否清晰,是否有遗漏。例如,连接到MySQL服务器的步骤,引用[2]提到需要先连接,所以应该先说明如何用mysql -u root -p登录。然后分步骤创建用户、授权、刷新权限,最后验证权限是否正确应用。 可能还需要提醒用户权限生效的条件,是否需要重启服务或者刷新权限,这里明确FLUSH PRIVILEGES;是必须的。另外,查看现有权限的方法,比如SHOW GRANTS FOR '用户'@'主机';,这对用户验证很有用。 总结回答的结构应该是:连接数据库、创建用户、授予权限、刷新权限、验证权限,以及补充的权限管理和安全建议。确保每个步骤都有示例代码,并引用相关的参考资料。同时生成相关问题,帮助用户深入学习,比如如何撤销权限或处理远程访问问题。</think>### 如何在 MySQL创建用户并授予权限 #### 1. **连接到 MySQL 数据库** 首先需要以具有管理员权限的用户(如 `root`)登录到 MySQL 服务器: ```bash mysql -u root -p ``` 输入密码后进入 MySQL 命令行界面[^2]。 --- #### 2. **创建用户** 使用 `CREATE USER` 语句创建用户,需指定用户名、允许访问的主机(如 `localhost` 或 `%` 表示任意主机)和密码。 示例:创建用户 `testuser`,仅允许从本地访问: ```sql CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'SecurePassword123!'; ``` 若要允许远程访问(如通过 IP `192.168.1.5`),可修改为: ```sql CREATE USER 'testuser'@'192.168.1.5' IDENTIFIED BY 'SecurePassword123!'; ``` 若允许任意主机访问,使用 `'testuser'@'%'`[^3]。 --- #### 3. **授予权限** 使用 `GRANT` 语句分配权限,语法为: ```sql GRANT [权限类型] ON [数据库名].[表名] TO '用户名'@'主机'; ``` - **全局权限**(如管理权限): ```sql GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'localhost'; ``` - **数据库级权限**(授予 `mydb` 数据库的所有权限): ```sql GRANT ALL PRIVILEGES ON mydb.* TO 'testuser'@'localhost'; ``` - **表级权限**(仅允许查询 `mytable` 表): ```sql GRANT SELECT ON mydb.mytable TO 'testuser'@'localhost'; ``` 常见权限包括 `SELECT`、`INSERT`、`UPDATE`、`DELETE`、`CREATE`、`DROP` 等[^1][^2]。 --- #### 4. **刷新权限** 修改权限后需执行: ```sql FLUSH PRIVILEGES; ``` 使新配置生效。 --- #### 5. **验证权限** 查看用户的权限: ```sql SHOW GRANTS FOR 'testuser'@'localhost'; ``` 输出示例: ```sql +---------------------------------------------------+ | Grants for testuser@localhost | +---------------------------------------------------+ | GRANT USAGE ON *.* TO 'testuser'@'localhost' | | GRANT SELECT ON `mydb`.`mytable` TO 'testuser'@'localhost' | +---------------------------------------------------+ ``` --- #### 6. **权限管理补充** - **撤销权限**:使用 `REVOKE` 语句: ```sql REVOKE SELECT ON mydb.mytable FROM 'testuser'@'localhost'; ``` - **删除用户**: ```sql DROP USER 'testuser'@'localhost'; ``` --- ### 安全建议 1. 为每个用户分配最小必要权限,避免使用 `ALL PRIVILEGES`[^1]。 2. 使用强密码并定期更新。 3. 限制远程访问范围(如指定 IP 而非 `%`)。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值