MySQL之账户管理

MySQL之账户管理

账户管理是MySQL用户管理最基本的内容。包括登录,退出MySQL服务器、创建用户、删除用户、密码管理和权限管理等内容。

  其中登录方式非常简单,在这个地址有:http://www.cnblogs.com/kissdodog/p/4154068.html

1、新建普通用户

在MySQL数据库中,建立用户有3种方式:

  • 使用create user语句来创建新的用户;
  • 直接在mysql.user表中insert 用户;
  • 使用grant 语句来新建用户;

(1)、方式一:create user

  使用CREATE USER语句创建用户,必须要拥有CREATE USER权限。其格式如下:

CREATE
USER
user[IDENTIFIED BY [PASSWORD]
‘password‘],
[user[IDENTIFIED BY [PASSWORD]
‘password‘]]...

  其中,user参数表示新建用户的账户,user由用户名(User)和主机名(Host)构成;IDENTIFIED BY关键字用来设置用户的密码;password参数表示用户的密码;如果密码是一个普通的字符串,就不需要使用PASSWORD关键字。可以没有初始密码。

  示例:

CREATE
USER
‘admin‘@‘%‘ IDENTIFIED BY
‘admin‘

  执行之后user表会增加一行记录,但权限暂时全部为‘N‘。

(2)方式二:用INSERT语句新建普通用户

  可以使用INSERT语句直接将用户的信息添加到mysql.user表。但必须拥有mysql.user表的INSERT权限。

  另外,ssl_cipher、x509_issuer、x509_subject没有值,必须要设置值,否则INSERT语句无法执行。

  示例:

INSERT
INTO mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) VALUES(‘%‘,‘newuser1‘,PASSWORD(‘123456‘),‘‘,‘‘,‘‘)

  执行INSERT之后,需要使用一下命令来刷新权限:

FLUSH PRIVILEGES

  命令来使用户生效。

(3)、用GRANT语句来新建普通用户

  用GRANT来创建新的用户时,能够在创建用户时为用户授权。但需要拥有GRANT权限。

  语法如下:

GRANT priv_type ON
database.table

TO
user[IDENTIFIED BY [PASSWORD]
‘password‘]

[,user [IDENTIFIED BY [PASSWORD]
‘password‘]...]

  • priv_type:参数表示新yoghurt的权限;
  • databse.table:参数表示新用户的权限范围;
  • user:参数新用户的账户,由用户名和主机构成;
  • IDENTIFIED BY关键字用来设置密码;
  • password:新用户密码;

  GRANT语句可以同时创建多个用户。

GRANT
SELECT
ON
*.*
TO [email protected]‘%‘

  *.*与db.*的区别在于。*.*对所有数据库生效,所以user表的SELECT会变为Y。而db.*user表为‘N‘,更改的是Db表。

2、删除普通用户

(1)、DROP USER语句删除普通用户

需要拥有DROP USER权限。语法如下:

DROP
USER
user[,user]...

user是需要删除的用户,由用户名(User)和主机名(Host)构成。

DROP
USER
‘newuser1‘@‘%‘

(2)、DELETE语句删除普通用户

  可以使用DELETE语句直接将用户的信息从mysql.user表中删除。但必须拥有对mysql.user表的DELETE权限。

DELETE
FROM mysql.user
WHERE Host =
‘%‘
AND
User
=
‘admin‘

  删除完成后,一样要FLUSH PRIVILEGES才生效。

3、修改密码

(1)、使用mysqladmin命令来修改root用户的密码

  语法:

mysqladmin -u -username -p password "new_password"

  新密码(new_password)必须用括号括起来,单引号会报错。

  示例:

  (注:这个待验证,我怎么执行都不成功!)

(2)、修改user表

UPDATE user表的passwor字段的值,也可以达到修改密码的目的;

UPDATE
user
SET Password = PASSWORD(‘123‘) WHERE
USER
=
‘myuser‘

  FLUSH PRIVILEGES后生效。

(3)、使用SET语句来修改密码

  使用root用户登录到MySQL服务器后,可以使用SET语句来修改密码:

  修改自己的密码,不需要用户名

SET PASSWORD = PASSWORD("123");

  修改其他用户密码:

SET PASSWORD FOR
‘myuser‘@‘%‘=PASSWORD("123456")

  FOR 用户名@主机名

(4)、GRANT语句来修改普通用户的密码

  使用GRANT语句修改普通用户的密码,必须拥有GRANT权限。

GRANT priv_type ON
database.table
TO
user
[IDENTIFIED BY [PASSWORD]
‘password‘]

  示例:

GRANT
SELECT
ON
*.*
TO
‘test3‘@‘%‘ IDENTIFIED BY
‘123‘

4、忘记密码的解决方案

  如果root用户密码丢失了,会给用户造成很大的麻烦。但是,可以通过某种特殊方法登录到root用户下,然后修改密码。

  (1)、使用--skip-grant-tables选项启动MySQL服务

  该选项将使MySQL服务器停止权限判断,任何用户都能够访问数据库。

  在Windows操作系统下,使用mysqlid或mysqlid-nt来启动MySQL服务。

  mysqld命令:

  mysqld --skip-grant-tables

  mysqld-nt命令:

  mysqld-nt --skip-grant-tables

  net start mysql命令:

  net start mysql --skip-grant-tables

  (2)、登录root用户,并且设置新密码

  mysql -u root

  必须使用UPDATE语句更新mysql数据库下的user表,而不能使用SET语句,因为--skip-grant-tables不能使用SET语句。

  修改完密码以后,FLUSH PRIVILEGES语句加载权限表,新密码即生效。

时间: 2024-10-15 23:28:20

MySQL之账户管理的相关文章

mysql的账户管理

mysql中账户管理: 1 查看所有用户: 所有用户及权限信息都存储在mysql数据库中的user表中 查看user表的结构 desc user\G; 主要字段: host: 表示允许访问的主机 user: 表示用户名 authentication_string: 加密后的密码 查看所有用户: select host,user,authentication_string from user; 2 创建账户和授予权限: 需要使用账户登录后操作 例如使用root 常用权限:create alter

MySQL账户管理

body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10px; padding-bottom: 10px; background-color: white; padding: 30px } body>*:first-child { margin-top: 0 !important } body>*:last-child { margin-bottom:

MySQL/MariaDB用户账户管理

用户账户管理: 'Username'@'Hostname' Username:任意的字符串组合,只能包含基本意义的字符:可以包含"_"."."."-": Hostname:可以为FQDN(完全合格域名),域名,IP地址,可使用MySQL通配符"_"代表任意单个字符"%"代表任意多个任意字符: 创建用户账户: CREATE USER语句: CREATE USER user [IDENTIFIED BY [PA

mysql之锁、存储引擎和用户账户管理

一.锁(自动加锁和释放锁) 二.存储引擎 三.用户账户管理---用户授权 原文地址:https://www.cnblogs.com/yuxiangyang/p/11079236.html

CentOS下的账户管理

在Linux中,每个文件都分3类权限:账户本身的权限,账户所在群组的权限和其它权限.账户和群组是多对多的关系,即一个账户可以属于多个群组,一个群组可以包含多个账户.但是,对于每一个已登录的账户,只能存在一个当前生效的群组(初始群组). 账户管理相关配置文件如下:账户信息文件是/etc/passwd.账户密码文件是/etc/shadow.群组信息文件是/etc/group.群组密码文件是/etc/gshadow. 1./etc/passwd文件怎么看 如上图,/etc/passwd文件中每一行为一

mysql的权限管理

mysql的权限管理1.授权的基本原则   只授予满足要求的最小权限,但要注意使用户能够授权给别的用户(with grant option)   对用户设置登录的主机限制   删除没有密码的用户   满足密码的复杂度,设置较为复杂的密码   定期检查用户的权限,适当收回不需要的权限   2.给用户授权  mysql> grant all on *.* to 'root'@'10.0.5.150' identified by 'aixocm';  mysql> flush privileges;

MySQl Study学习之--MySQl二进制日志管理

MySQl Study学习之--MySQl二进制日志管理 MySQL二进制日志(Binary Log):   a.它包含的内容及作用如下:    包含了所有更新了数据或者已经潜在更新了数据(比如没有匹配任何行的一个DELETE)    包含关于每个更新数据库(DML)的语句的执行时间信息    不包含没有修改任何数据的语句,如果需要启用该选项,需要开启通用日志功能    主要目的是尽可能的将数据库恢复到数据库故障点,因为二进制日志包含备份后进行的所有更新    用于在主复制服务器上记录所有将发送

mongodb3.4--2分片配置实验 wiredTiger -账户管理

# update by csc 20170217 #opensystem  centos  6.5 64 bit tar -xvzf   mongodb-linux-x86_64-rhel62-3.4.2.gz  -C /usr/local/ mv  /usr/local/mongodb-linux-x86_64-rhel55-3.4.2  /usr/local/mongodb echo 'export PATH=$PATH:/usr/local/mongodb/bin' >>/etc/pro

MySQL数据库常见管理应用(1)

MySQL数据库常见管理应用 1.创建数据库 创建一个数据库solin mysql> create database solin; 建立一个名为solin_gbk的GBK字符集 mysql> create database solin_gbk DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; 建立一个名为solin_utf8的UTF8字符集 mysql> create database solin_utf8 DEFAULT CHARACT