安全管理——访问控制&用户管理

   日期:2020-10-14     浏览:99    评论:0    
核心提示:1. 访问控制访问控制:给用户提供他们所需的访问权,且仅提供他们所需的访问权。管理访问控制需要创建和管理用户账号。MySQL创建一个名为root的用户账号,它对整个MySQL服务器具有完全的控制。应该严肃对待root登录的使用。仅在绝对需要时使用它(或许在你不能登录其他管理账号时使用)。不应该在日常的MySQL操作中使用root。2. 管理用户MySQL用户账号和信息存储在名为mysql的MySQL数据库中。一般不需要直接访问mysql数据库和表,但有时需要直接访问。需要直接访问它的时机之一是在需

文章目录

  • 1. 访问控制
  • 2. 管理用户
    • 2.1 创建用户账号
    • 2.2 删除用户账号
    • 2.3 设置访问权限
    • 2.4 更改口令

1. 访问控制

访问控制:给用户提供他们所需的访问权,且仅提供他们所需的访问权。

管理访问控制需要创建和管理用户账号。

MySQL创建一个名为root的用户账号,它对整个MySQL服务器具有完全的控制。应该严肃对待root登录的使用。仅在绝对需要时使用它(或许在你不能登录其他管理账号时使用)。不应该在日常的MySQL操作中使用root。

2. 管理用户

MySQL用户账号和信息存储在名为mysql的MySQL数据库中。一般不需要直接访问mysql数据库和表,但有时需要直接访问。需要直接访问它的时机之一是在需要获得所有用户账号列表时,如下:


分析:mysql数据库有一个名为user的表,它包含所有用户账号。user表有一个名为user的列,它存储用户登录名。

2.1 创建用户账号

为了创建一个新用户账号,使用create user语句:


分析:在创建用户账号时不一定需要口令,不过这个例子用IDENTIFIED BY 'p@$$wOrd’给出了一个口令。

为重新命名一个用户账号,使用rename user语句:

2.2 删除用户账号

为了删除一个用户账号(以及相关的权限),使用drop user语句:

2.3 设置访问权限

为看到赋予用户账号的权限,使用show grants for语句:

分析:输出结果显示用户bforta有一个权限USAGE ON .。USAGE表示根本没有权限,所以,此结果表示在任意数据库和任意表上对任何东西没有权限。

为设置权限,使用grant语句。grant要求你至少给出以下信息:

  • 要授予的权限;
  • 被授予访问权限的数据库或表;
  • 用户名。

分析:此grant允许用户在crashcourse.*(crashcourse数据库的所有表)上使用select。通过只授予select访问权限,用户bforta对crashcourse数据库中的所有数据具有只读访问权限。

grant的反操作为revoke,用它来撤销特定的权限。

grant和revoke可在几个层次上控制访问权限:

  • 整个服务器,使用grant all和revoke all;
  • 整个数据库,使用on database.*;
  • 特定的表,使用on database.table;
  • 特定的列;
  • 特定的存储过程。

使用grant和revoke可以授予或撤销的每个权限如下表:


可通过列出各权限并用逗号分隔,将多条grant语句串在一起,如下所示:

2.4 更改口令

为了更改用户口令,可使用set password语句:

分析:set password更新用户口令。新口令必须传递到password()函数进行加密。

在不指定用户名时,set password更新当前登录用户的口令。

USE mysql;
SELECT USER FROM USER;

-- 创建一个新用户账号
CREATE USER ben IDENTIFIED BY 'p@$$wOrd';
SELECt USER FROM USER;

-- 重新命名一个用户账号
RENAME USER ben TO bforta;

-- 删除一个用户账号(以及相关的权限
DROp USER bforta;

-- 为了看到赋予用户账号的权限
SHOW GRANTS FOR bforta;

-- grant的用法
GRANT SELECT ON crashcourse.* TO bforta;
SHOW GRANTS FOR bforta;

-- revoke用来撤销特定的权限
REVOKE SELECT ON crashcourse.* FROM bforta;

-- 可通过列出各权限并用逗号分隔,将多条grant语句串在一起:
GRANT SELECT, INSERT ON crashcourse.* TO bforta;

-- 新口令加密
SET PASSWORD FOR bforta = PASSWORD ('n3w p@$$wOrd');

-- 在不指定用户名时,SET PASSWORD更新当前登录用户的口令
SET PASSWORD = PASSWORD ('n3w p@$$wOrd');

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服