MySQL添加用户、删除用户与授权
mysql创建用户命令-grant

mysql创建⽤户命令-grant我们在使⽤mysql的过程中,经常需要对⽤户授权(添加,修改,删除),在mysql当中有三种⽅式实现分别是 INSERT USER表的⽅法、CREATE USER的⽅法、GRANT的⽅法。
今天主要看⼀下grant⽅法是如何实现的分两种情况,第⼀种先使⽤create user命令创建⽤户,然后grant授权;第⼆种直接使⽤grant创建并授权;我们先看第⼀种如何实现查看⽤户权限show grants for 你的⽤户⽐如:show grants for root@'localhost';⼀. 创建⽤户命令:CREATE USER'username'@'host' IDENTIFIED BY'password';说明:username:你将创建的⽤户名host:指定该⽤户在哪个主机上可以登陆,如果是本地⽤户可⽤localhost,如果想让该⽤户可以从任意远程主机登陆,可以使⽤通配符%password:该⽤户的登陆密码,密码可以为空,如果为空则该⽤户可以不需要密码登陆服务器例⼦:CREATE USER'dog'@'localhost' IDENTIFIED BY'123456';CREATE USER'pig'@'192.168.1.101_' IDENDIFIED BY'123456';CREATE USER'pig'@'%' IDENTIFIED BY'123456';CREATE USER'pig'@'%' IDENTIFIED BY'';CREATE USER'pig'@'%';⼆. 授权:命令:GRANT privileges ON databasename.tablename TO'username'@'host'说明:privileges:⽤户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使⽤ALLdatabasename:数据库名tablename:表名,如果要授予该⽤户对所有数据库和表的相应操作权限则可⽤*表⽰,如*.*例⼦:GRANT SELECT, INSERT ON er TO'pig'@'%';GRANT ALL ON*.*TO'pig'@'%';上⾯的第⼀⾏代码表⽰在test库中的user 授权pid⽤户,授权插⼊和选择操作;第⼆⾏表⽰授权pid⽤户可以操作所有的权限;注意:⽤以上命令授权的⽤户不能给其它⽤户授权,如果想让该⽤户可以授权,⽤以下命令:GRANT privileges ON databasename.tablename TO'username'@'host'WITH GRANT OPTION;三.设置与更改⽤户密码SET PASSWORD FOR'username'@'host'= PASSWORD('newpassword');如果是当前登陆⽤户⽤:SET PASSWORD = PASSWORD("newpassword");例⼦:SET PASSWORD FOR'pig'@'%'= PASSWORD("123456");四. 撤销⽤户权限命令:REVOKE privilege ON databasename.tablename FROM'username'@'host';说明:privilege, databasename, tablename:同授权部分例⼦:REVOKE SELECT ON*.*FROM'pig'@'%';注意:假如你在给⽤户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON er TO 'pig'@'%',则在使⽤REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该⽤户对test数据库中user表的SELECT 操作。
MySQL数据库的用户账号管理基础知识

MySQL数据库的用户账号管理基础知识MySQL数据库的用户账号管理基础知识2011-05-29 00:30MySQL管理员应该知道怎样通过指定哪些用户可连接到服务器、从哪里进行连接,以及在连接时做什么,来设置MySQL用户账号。
MySQL 3.22.11引入了两个更容易进行这项工作的语句:GRANT语句创建MySQL用户并指定其权限,REVOKE语句删除权限。
这两个语句充当mysql数据库中的授权表的前端,并提供直接操纵这些表内容的可选择的方法。
GRANT和REVOKE语句影响以下四个表:授权表内容user可连接到服务器的用户和他们拥有的任何全局特权db数据库级的特权tables _priv表级特权c ol um ns _priv列级特权还有第五个授权表(host),但它不受GRANT或REVOKE的影响。
当您为某个用户发布GRANT语句时,应在user表中为该用户创建一个项。
如果该语句指定了所有全局特权(管理权限或用于所有数据库的权限),则这些指定也被记录在user表中。
如果指定了数据库、表或列的权限,它们将记录在db、tables_priv和columns_priv表中。
使用GRANT和REVOKE语句比直接修改授权表更容易。
但是,建议您最好通过阅读第12章来补充本章的内容,第12章中详细讨论了授权表。
这些表非常重要,作为一位管理员应该了解这些表是怎样在GRANT和REVOKE语句级上工作的。
本节下面的部分将讨论如何设置MySQL用户的账号和授权,还将介绍如何取消权限以及从授权表中删除全部用户,并且将考虑一个困扰许多新的MySQL管理员的难题。
您还要考虑使用mysqlaccess和mysql_setpermission脚本,它们是MySQL分发包的组成部分。
这些是Perl的脚本,它们提供了设置用户账号的GRANT语句的代用品。
mysql_setpermission需要具有DBI的支持环境。
数据库授权与权限管理的使用方法

数据库授权与权限管理的使用方法概述数据库授权与权限管理是在数据库系统中对用户和角色进行访问控制和权限授予的过程。
通过合理的管理数据库权限,可以实现对敏感数据的保护,避免数据泄露和恶意操作的风险。
本文将介绍数据库授权与权限管理的使用方法,帮助用户正确配置和管理数据库权限。
1. 用户管理用户是数据库中的主体,可以是管理员、开发人员或普通用户。
在进行数据库授权与权限管理之前,首先需要创建用户。
在大多数数据库管理系统中,可以使用以下命令来创建用户:CREATE USER 'username'@'host' IDENTIFIED BY 'password';这个命令将创建一个具有指定用户名和密码的新用户。
在创建用户时,需要指定用户的用户名、允许访问的主机和登录密码等信息。
2. 角色管理角色是一种用户组,通过为角色授予权限,可以简化权限管理过程。
在数据库里,一个角色可以有多个权限。
用户可以成为一个或多个角色的成员,从而继承相应的权限。
在进行角色管理时,可以使用以下命令:CREATE ROLE 'rolename';这个命令将创建一个具有指定角色名的新角色。
3. 权限管理a) 授权给用户或角色任何用户或角色都可以授予一个或多个权限,以允许访问数据库的不同操作和对象。
在授权给用户或角色时,可以使用以下命令:GRANT permission ON database.object TO 'username'@'host' [WITH GRANT OPTION];其中,permission表示授权的权限类型,如SELECT、INSERT、UPDATE、DELETE等;database表示所操作的数据库;object表示所操作的表、视图或存储过程等;'username'@'host'表示将权限授权给指定用户名和主机的用户。
MySQL中的权限继承和用户管理技巧

MySQL中的权限继承和用户管理技巧MySQL是一个非常流行的关系型数据库管理系统,被广泛用于各种应用程序的数据存储和管理。
在使用MySQL时,用户权限的管理是非常重要的一个方面,它决定了用户对数据库和数据的访问权限。
本文将深入探讨MySQL中的权限继承和用户管理技巧,帮助读者更好地理解和运用这些功能。
一、MySQL用户及权限概述在MySQL中,用户和权限是密切相关的。
用户是数据库管理员对数据库和数据进行管理和操作的主体,而权限是决定用户能够执行哪些操作的规则集合。
MySQL中的用户可以分为两类:系统用户和应用程序用户。
系统用户是MySQL服务器的内部用户,用于系统管理和监控。
而应用程序用户则是由数据库管理员创建的,用于应用程序对数据库的操作。
权限是MySQL中非常重要的一个概念。
它控制着用户对数据库和数据的访问级别,包括读取、写入、修改、删除等操作权限。
MySQL中的权限分为全局级别、数据库级别和表级别三个层次。
全局级别权限是指在整个MySQL服务器上的权限,它影响到所有的数据库和表。
数据库级别权限是指在某个特定数据库上的权限,它仅影响该数据库下的表。
表级别权限则是指在某个特定表上的权限,它最为具体,也最为细粒度。
MySQL的权限控制功能非常灵活,管理员可以根据需要对不同的用户赋予不同的权限。
二、MySQL中的权限继承MySQL中的权限继承是指权限在不同层级之间的传递和继承。
在MySQL中,权限可以从全局级别传递到数据库级别,再从数据库级别传递到表级别。
这种权限继承的机制可以让管理员更加方便地管理用户权限,减少工作的重复性。
当一个用户被赋予了全局级别的权限时,这个用户可以在整个MySQL服务器上执行相应的操作。
但是,管理员可以选择将这个权限限制在某个特定的数据库上。
这样,当用户连接到这个数据库时,他将具有相应的权限。
但是在其他数据库上,他将没有这些权限。
同样地,管理员也可以将权限限制在某个特定的表上。
mysql8授权语法

MySQL8授权语法MySQL是一种流行的关系型数据库管理系统,用于存储和管理大量结构化数据。
在MySQL中,授权是一项重要的功能,它允许管理员为用户提供特定的权限和访问级别。
本文将详细介绍MySQL8中的授权语法及其用法。
1. 创建用户在MySQL中,首先需要创建一个用户,然后为该用户分配相应的权限。
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';•username:要创建的用户名。
•localhost:可以通过哪个主机连接到MySQL服务器。
可以指定具体的IP地址或主机名。
•password:为用户设置密码。
2. 授权权限创建用户后,需要为其分配相应的权限。
以下是一些常见的权限:•ALL PRIVILEGES:拥有所有权限。
•SELECT:允许查询数据。
•INSERT:允许插入数据。
•UPDATE:允许更新数据。
•DELETE:允许删除数据。
GRANT permission1, permission2 ON database.table TO 'username'@'localhost';•permission1, permission2:要授予的权限列表。
•database.table:要授权的数据库和表名。
使用通配符*表示所有数据库或表。
3. 刷新权限在修改了用户权限之后,需要刷新MySQL服务器以使更改生效。
FLUSH PRIVILEGES;4. 撤销权限如果需要撤销用户的某些权限,可以使用REVOKE语句。
REVOKE permission1, permission2 ON database.table FROM 'username'@'localhost';•permission1, permission2:要撤销的权限列表。
《MySql数据库实例教程》9-数据库管理

【例1】创建一个用户usr2,初始密码为123。不将正密确的码密标码记会为导致过临期时,帐以户锁便定用两户天在。 第一次连接到
CREATE USER usr3@localhost IDENTIFIED BY '123'
服务器时必须选择一个新密码。
PASSWORD EXPIRE INTERVAL 180 DAY
【例】 回收用户user3在Book表上的 SELECT权限。
USE bookstore; REVOKE SELECT
ON Book FROM user3@localhost;
备份与恢复
备份和恢复需求分析
第九章 数据库管理
14
数据库中的数据丢失或被破坏可能是由于以下原因:
① 计算机硬件故障。由于使用不当或产品质量等原因,计算机硬件可能会出现故障,不能使用。如硬盘损 坏会使得存储于其上的数据丢失。
USE Bookstore; GRANT ALL ON * TO user1@localhost;
授予用户权限
(3)授予用户权限
第九章 数据库管理
11
最有效率的权限就是用户权限,对于需要授予数据库权限的所有语句,也可以定义在用户权 限上。例如,在用户级别上授予某人CREATE权限,这个用户可以创建一个新的数据库,也可 以在所有的数据库(而不是特定的数据库)中创建新表。
【【例例12】】授授予予PPeetteerr对创所建有新数用据户库的中权的力所。有表的CREATE、ALTERT和DROP权限。 GGRRAANNTT CCRREEAATTEE,AULSTEERR ,DORNO*P.*OTNO*.P* eTteOr@Ploectearl@holsotc;alhost IDENTIFIED BY 'ppwd';
MySQL用户密码设置和加密

MySQL用户密码设置和加密MySQL是一种功能强大的关系型数据库管理系统,广泛应用于各个领域的数据存储和处理,因其开源性和稳定性而备受青睐。
在使用MySQL时,用户密码的设置和加密是非常重要的安全措施,本文将详细介绍MySQL用户密码设置和加密的相关知识,以帮助读者更好地保护数据库的安全性。
一、MySQL用户密码设置在MySQL中,用户的密码是保存在用户表(user表)中的,每个用户都有一个单独的密码,我们可以通过创建新用户或修改已有用户的密码来进行密码设置。
1. 创建新用户创建新用户时,我们需要为其指定一个用户名和密码。
用户名可以是任意字符组合,但建议选择具有辨识度且不易猜测的名称,以增加密码破解的难度。
密码应该是复杂强大的,建议包括大小写字母、数字和特殊字符,并且长度不少于8位。
例如,我们创建了一个名为"myuser"的新用户,并为其设置密码"my@Passw0rd":```CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'my@Passw0rd';```这样,一个新的用户名为"myuser"、密码为"my@Passw0rd"的用户就被成功创建了。
2. 修改已有用户密码如果需要修改已有用户的密码,可以使用`ALTER USER`语句来实现。
例如,我们需要将用户"myuser"的密码修改为"new@Passw0rd":```ALTER USER 'myuser'@'localhost' IDENTIFIED BY 'new@Passw0rd';```这样,用户"myuser"的密码就被成功修改了。
3. 删除用户如果某个用户不再需要,可以使用`DROP USER`语句将其从用户表中删除。
mysql数据库授权

mysql数据库授权授权命令GRANT 语句的语法如下:GRANT privileges (columns)ON whatTO user IDENTIFIEDBY "password"WITH GRANT OPTION对用户授权mysql>grant rights on database.* to user@host identified by "pass";例1:增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。
grant select,insert,update,delete on *.* to test1@"%" Identified by "abc"; ON 子句中*.* 说明符的意思是“所有数据库,所有的表”例2:增加一个用户test2密码为abc, 让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作。
grant select,insert,update,delete on mydb.* to test2@localhostidentified by "abc";例子3增加一个用户custom,他能从主机localhost、server.domain和连接。
他只想要从 localhost存取bankaccount数据库,从存取expenses数据库和从所有3台主机存取customer 数据库。
他想要从所有3台主机上使用口令stupid。
为了使用GRANT语句设置个用户的权限,运行这些命令:shell> mysql --user=root mysqlmysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROPON bankaccount.* TO custom@localhost IDENTIFIED BY 'stupid';mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROPON expenses.* TO custom@ IDENTIFIED BY 'stupid';mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROPON customer.* TO custom@'%' IDENTIFIED BY 'stupid';==============================================权限信息用user、db、host、tables_priv和columns_priv表被存储在mysql数据库中(即在名为mysql的数据库中)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束):
1.新建用户
1.1 登录MYSQL:
@>mysql -u root -p
@>密码
1.2 创建用户:
mysql> insert into er(Host,User,Password)
values("localhost","test",password("1234"));
这样就创建了一个名为:test 密码为:1234 的用户。
注意:此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。
如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。
也可以指定某台机器可以远程登录。
1.3 然后登录一下:
mysql>exit;
@>mysql -u test -p
@>输入密码
mysql>登录成功
2.为用户授权
授权格式:grant 权限on 数据库.* to 用户名@登录主机identified by "密码";
2.1 登录MYSQL(有ROOT权限),这里以ROOT身份登录:
@>mysql -u root -p
@>密码
2.2 首先为用户创建一个数据库(testDB):
mysql>create database testDB;
2.3 授权test用户拥有testDB数据库的所有权限(某个数据库的所有权限):
mysql>grant all privileges on testDB.* to test@localhost identified by '1234';
mysql>flush privileges;//刷新系统权限表
格式:grant 权限on 数据库.* to 用户名@登录主机identified by "密码";
2.4 如果想指定部分权限给一用户,可以这样来写:
mysql>grant select,update on testDB.* to test@localhost identified by '1234';
mysql>flush privileges; //刷新系统权限表
2.5 授权test用户拥有所有数据库的某些权限:
mysql>grant select,delete,update,create,drop on *.* to test@"%" identified by "1234";
//test用户对所有数据库都有select,delete,update,create,drop 权限。
//@"%" 表示对所有非本地主机授权,不包括localhost。
(localhost地址设为127.0.0.1,如果设为真实的本地地址,不知道是否可以,没有验证。
)
//对localhost授权:加上一句grant all privileges on testDB.* to test@localhost identified by '1234';即可。
3. 删除用户
@>mysql -u root -p
@>密码
mysql>Delete FROM user Where User='test' and Host='localhost';
mysql>flush privileges;
mysql>drop database testDB; //删除用户的数据库
删除账户及权限:>drop user 用户名@'%';
>drop user 用户名@ localhost;
4. 修改指定用户密码
@>mysql -u root -p
@>密码
mysql>update er set password=password('新密码') where User="test" and Host="localhost";
mysql>flush privileges;
5. 列出所有数据库
mysql>show database;
6. 切换数据库
mysql>use '数据库名';
7. 列出所有表
mysql>show tables;
8. 显示数据表结构
mysql>describe 表名;
9. 删除数据库和数据表
mysql>drop database 数据库名;
mysql>drop table 数据表名;。