MySQL-创建用户和授权

本文详细介绍了MySQL数据库中的授权管理,包括创建、删除用户,修改用户权限,以及如何为新用户授予特定操作,如select, update, delete等。还涵盖了备份与恢复的基本操作。
授权管理
1.我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作。
2.包括select、update、delete、update、grant等操作。
4.那么一般情况在公司之后DBA工程师会创建一个用户和密,让你去连接数据库的操作,并给当前的用户设置某个操作的权限(或者所有权限)
进入到mysql数据库下
mysql> use mysql
Database changed
对新用户增删改
1.创建用户:
# 指定ip:192.118.1.1的mjj用户登录
create user 'alex'@'192.118.1.1' identified by '123';
# 指定ip:192.118.1.开头的mjj用户登录
create user 'alex'@'192.118.1.%' identified by '123';
# 指定任何ip的mjj用户登录
create user 'alex'@'%' identified by '123';

2.删除用户
drop user '用户名'@'IP地址';

3.修改用户
rename user '用户名'@'IP地址' to '新用户名'@'IP地址';

4.修改密码
set password for '用户名'@'IP地址'=Password('新密码');
对当前的用户授权管理
#查看权限
show grants for '用户'@'IP地址'

#授权 mjj用户仅对db1.t1文件有查询、插入和更新的操作
grant select ,insert,update on db1.t1 to "alex"@'%';

# 表示有所有的权限,除了grant这个命令,这个命令是root才有的。mjj用户对db1下的t1文件有任意操作
grant all privileges on db1.t1 to "alex"@'%';
#mjj用户对db1数据库中的文件执行任何操作
grant all privileges  on db1.* to "alex"@'%';
#mjj用户对所有数据库中文件有任何操作
grant all privileges on *.*  to "alex"@'%';
 
#取消权限
 
# 取消mjj用户对db1的t1文件的任意操作
revoke all on db1.t1 from 'alex'@"%";  

# 取消来自远程服务器的mjj用户对数据库db1的所有表的所有权限

revoke all on db1.* from 'alex'@"%";  

取消来自远程服务器的mjj用户所有数据库的所有的表的权限
revoke all privileges on *.* from 'alex'@'%';
MySQL备份操作
# 备份:数据表结构+数据
mysqdump -u root db1 > db1.sql -p

# 备份:数据表结构
mysqdump -u root -d db1 > db1.sql -p

#导入现有的数据到某个数据库
#1.先创建一个新的数据库
create database db10;

# 2.将已有的数据库文件导入到db10数据库中
mysqdump -u root -d db10 < db1.sql -p
MySQL 8 中,创建用户进行授权有以下几种方法: ### 方法一 - **创建数据库**:使用 `create database` 语句来创建数据库,示例如下: ```sql create database databasename; ``` 这里的 `databasename` 是想要创建的数据库名字 [^2]。 - **创建用户**:使用 `create user` 语句创建用户并设置密码,示例如下: ```sql create user 'databasename'@'%' identified by 'username'; ``` 其中 `username` 是用户名,`%` 表示该用户可以从任何主机连接到 MySQL 服务器 [^2]。 - **授权用户**:使用 `grant` 语句授予用户权限,并使用 `flush privileges` 刷新权限,示例如下: ```sql grant all privileges on databasename.* to 'databasename'@'%' with grant option; flush privileges; ``` `all privileges` 表示授予所有权限,`databasename.*` 表示该数据库下的所有表,`with grant option` 表示该用户可以将自己拥有的权限授予其他用户 [^2]。 ### 方法二 - **登录 MySQL**:使用以下命令登录 MySQL 服务器,按提示输入密码: ```sql mysql -u root -p ``` - **选择数据库**:登录成功后,选择 `mysql` 数据库,因为该数据库中的 `user` 表存储了用户信息: ```sql use mysql; ``` - **查看用户信息**:查看 `user` 表中当前 `root` 用户的相关信息: ```sql select host, user, authentication_string, plugin from user; ``` 执行该命令后会显示一个表格,查看 `root` 用户的 `host` 字段,默认是 `localhost`,只支持本地访问 [^3]。 - **授权并设置远程访问**:授予 `root` 用户所有权限并设置其可以远程访问: ```sql GRANT ALL ON *.* TO 'root'@'%'; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你自己的密码'; ``` `GRANT ALL ON *.*` 表示授予所有数据库所有表的所有权限,`%` 表示通配所有 `host`,允许远程访问。`ALTER USER` 语句用于修改用户的认证方式密码 [^3]。 ### 通用创建用户授权语法 - **创建用户**: ```sql create user '用户名'@'host'; -- 创建用户,未设置密码 create user '用户名'@'host' identified by '密码'; -- 创建用户同时设置密码 ``` - **授权**: ```sql grant 权限 on 数据库名.表名 to '用户名'@'localhost'; ``` 这里的 `权限` 可以是 `SELECT`、`INSERT`、`UPDATE`、`DELETE` 等,也可以使用 `ALL PRIVILEGES` 授予所有权限 [^1]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值