欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL 账户管理(了解)

程序员文章站 2022-03-03 20:01:43
...

数据库优化 学习笔记

一、账户管理


  • 在生产环境下操作数据库时,绝对不可以使用 root账户连接,而是创建特定的账户,授予这个账户特定的操作权限,然后连接进行操作,主要的操作就是数据的 crud.

  • MySQL账户体系:根据账户所具有的权限的不同,MySQL的账户可以分为以下几:

    1. 服务实例级账号:,启动了一个mysqld,即为一个数据库实例;如果某用户如root,拥有服务实例级分配的权限,那么该账号就可以删除所有的数据库、连同这些库中的表;
    2. 数据库级别账号: 对特定数据库执行增删改查的所有操作;
    3. 数据表级别账号: 对特定表执行增删改查等所有操作;
    4. 字段级别的权限: 对某些表的特定字段进行操作;
    5. 存储程序级别的账号: 对存储程序进行增删改查的操作.
  • 账户的操作主要包括创建账户、删除账户、修改密码、授权权限等.



二、授予权限


        需要使用实例级账户登录后操作,以 root 为例,主要操作包括: 查看所有用户 , 修改密码 , 删除用户

2.1、查看所有用户

  • 所有用户及权限信息存储在 mysql 数据库的 user 表中
  • 查看 user 表的结构
	desc user;
  • 主要字段说明:
    1. Host 表示允许访问的主机
    2. User 表示用户名
    3. authentication_string 表示密码,为加密后的值
	select host,user,authentication_string from user;

2.2、创建账户、授权账户

  • 需要使用实例级账户登录后操作,以 root 为例
  • 常用权限主要包括:create、alter、drop、insert、update、delete、select
  • 如果分配所有权限,可以使用 all privileges

2.3、创建账户 & 授权

        语法:

	-- 其中 "访问主机" , 是指使用什么地址进行访问
	grant 权限列表 on 数据库 to '用户名'@'访问主机' identified by '密码';

  • 示例1
    创建一个 laowang 的账号,密码为 123456 ,只能通过本地访问, 并且只能对 jd 数据库中的所有表进行 操作
	-- step1:使用root登录
	mysql -uroot -p
	-- 回车后写密码,然后回车

	-- step2:创建账户并授予所有权限
	grant select on jd.* to 'laowang'@'localhost' identified by '123456';

	-- 说明:
		-- 可以操作python数据库的所有表,方式为: jd.*
		-- 访问主机通常使用 百分号% 表示此账户可以使用任何ip的主机登录访问此数据库
		-- 访问主机可以设置成 localhost或具体的ip,表示只允许本机或特定主机访问
	
	-- step3:刷新权限
	flush privileges;
	
	-- step4:查看用户有哪些权限
	show grants for laowang@localhost;

	-- step5:退出root的登录
	quit
	
	-- step6:使用laowang账户登录
	mysql -ulaowang -p
	-- 回车后写密码,然后回车

	-- step7:对数据库进行操作测试
	-- 查看数据库, 发现只能看到 系统默认的 和 运行操作的 数据库
	show databases;
	-- 进行可以操作的数据库, 尝试对标进行操作, 测试结果

  • 示例2
    创建一个 laoli 的账号,密码为 12345678 ,可以任意电脑进行链接访问, 并且对 jd 数据库中的所有表拥有 所有 权限
	grant all privileges on jd.* to "laoli"@"%" identified by "12345678"
相关标签: 数据库优化