Mysql的基础语法(用户、赋权)

   1、创建用户

        语法:create user 'username'@'host' identified by 'password';

                identified by 'password':不写就是不设密码。

                username:新建的用户名

                host:连接方式,%允许远程连接、localhost是只能本地连接

-- 不设密码
create user 'test'@'%';

-- 设密码
create user 'test'@'%' identified by '123456';

   2、删除用户

        语法:drop user 'username'@'host';
                   delete from mysql.user where user = 'username' and host = 'host';

                使用root用户进行或使用具有delete全局权限用户进行

-- drop删除
drop user 'test'@'%';

-- delete删除
delete from mysql.user where user = 'test' and host = '%';

   3、 用户赋权

        语法:grant privileges on db.table to 'username'@'%' with grant option;

                privileges:权限内容,如select、update、delete等

                with grant option:用户可以将自己的权限给别的用户,根据需求添加,可以不写。

-- 添加查询权限(给用户test添加对test库的查询权限,可以细化到某个表,*表示所有)
grant select on test.* to 'test'@'%';

-- 添加对test库的管理权限(拥有对test库的所有权限)
grant all on test.* to 'test'@'%';


-- 刷新授权,使之立即生效
flush privileges; 

-- 查看当前登录用户的权限
show grants;

-- 查看其他用户权限
show grants for 'test1'@'%';
关键字作用
select查询
insert插入
update更新
delete删除
create创建(表、视图、索引等)
alter修改(表、视图、索引等)
drop删除(表、视图、索引等)
references编辑外键
create temporary table编辑临时表
index编辑索引
create view编辑视图
show view查看视图
create routine操作存储过程、函数(赋权该权限时会自动赋予下面的两个权限)
alter routine修改存储过程、函数
execute执行权限
all所有权限

   4、 权限撤销

        语法:revoke privilege on db.table from 'username'@'host';

                用法参考用户赋权,alter 换 revoke,to 换 from。

-- 撤销test用户对test库的查询权限
revoke select on test.* from 'test'@'%';

-- 撤销test用户对test库的所有权限
revoke all on test.* from 'test'@'%';

<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 而非 `%`)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值