第12章 安全管理.ppt
《第12章 安全管理.ppt》由会员分享,可在线阅读,更多相关《第12章 安全管理.ppt(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第第12章章 安全管理安全管理12.1 权限表权限表 12.2 用户管理用户管理 12.3 权限管理权限管理数据库原理与应用(基于MySQL)数据库原理与应用(基于MySQL)212.1 权限表权限表(1)user表user表是MySQL中最重要的一个权限表,记录允许连接到服务器的账号信息,里面的权限是全局级的,即针对所有用户数据库所有表的。MySQL8.0中user表有51个字段,可分为4类,分别是用户列、权限列、安全列和资源控制列。在mysql数据库中,使用以下命令可以查看user表的表结构:mysql DESC user;(2)db表db表也是MySQL数据库中非常重要的权限表。db表
2、中存储了用户对某个数据库的操作权限,决定用户能从哪个主机存取哪个数据库。db表的字段大致可以分为两类,分别是用户列和权限列。数据库原理与应用(基于MySQL)3(3)tables_priv表和tables_priv表tables_priv表用于对表进行权限设置,tables_priv表包含8个字段,分别是Host、Db、User、Table_name、Grantor、Timestamp、Table_priv和Column_priv。Columns_priv表用于对表的某一列进行权限设置,Columns_priv表包含7个字段,分别是Host、Db、User、Table_name、Column_
3、name、Timestamp和Column_priv。(4)procs_priv表procs_priv表可以存储过程和存储函数进行权限设置。procs_priv表包含8个字段,分别是Host、Db、User、Routine_name、Routine_type、Grantor、Proc_priv和Timestamp。12.1 权限表权限表数据库原理与应用(基于MySQL)412.2 用户管理用户管理一个新安装的MySQL系统,只有一个名为root的用户,可使用以下语句进行查看:mysql SELECT host,user,authentication_string FROM mysql.user
4、;+-+-+-+|host|user|authentication_string|+-+-+-+|localhost|root|*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9|+-+-+-+1 rows in set(0.00 sec)root用户是在安装MySQL服务器后由系统创建的,被赋予了操作和管理MySQL的所有权限。在实际操作中,为了避免恶意用户冒名使用root账号操作和控制数据库,通常须要创建一系列具备适当权限的用户,尽可能不用或少用root账号登录系统,以确保安全访问。数据库原理与应用(基于MySQL)512.2.1 创建用户创建用户 创建用户
5、使用CREATE USER语句。语法格式:语法格式:CREATE USER user_specification ,user_specification .其中,user_specification:user IDENTIFIED BY PASSWORD password|IDENTIFIED WITH auth_plugin AS auth_string 12.2 用户管理用户管理数据库原理与应用(基于MySQL)6说明:说明:user:指定创建的用户账号,格式为user_namehost_name,其中,user_name是用户名,host _name是主机名,如果未指定主机名,则主机名默
6、认为%,即为一组主机。IDENTIFIED BY子句:用于指定用户账号对应的口令,如果用户账号无口令,可省略该子句。PASSWORD:该可选项用于指定散列口令。password:指定用户账号的口令,口令可以是由字母和数字组成的明文,也可以是散列值。IDENTIFIED WITH子句:用于指定验证用户账号的认证插件。auth_plugin:指定认证插件的名称。12.2 用户管理用户管理数据库原理与应用(基于MySQL)7【例12.1】创建用户lee,口令为1234;创建用户zhang,口令为5678;创建用户sun,恩泽口令为test。mysql CREATE USER leelocalhost
7、 IDENTIFIED BY 1234,-zhanglocalhost IDENTIFIED BY 5678,-sunlocalhost IDENTIFIED BY test;Query OK,0 rows affected(0.25 sec)使用CREATE USER语句注意事项:使用CREATE USER语句创建一个用户账号后,会在mysql数据库的user表中添加一个新记录。如果创建的账户存在,该语句执行会出错。如果两个用户名相同而主机名不同,MySQL认为是不同的用户。使用CREATE USER语句时没有为用户指定口令,MySQL允许该用户不使用口令登录系统,但为了安全不推荐这种做法。
8、12.2 用户管理用户管理数据库原理与应用(基于MySQL)8 新创建的用户拥有权限很少,只允许进行不需要权限的操作。12.2.2 删除用户删除用户删除用户使用DROP USER语句。语法格式:语法格式:DROP USER user user.【例12.2】删除用户zhang。mysql DROP USER zhanglocalhost;Query OK,0 rows affected(0.19 sec)使用DROP USER语句注意事项:DROP USER语句用于删除一个或多个账户,并消除其权限。在DROP USER语句中,如果未指定主机名,则主机名默认为%。12.2 用户管理用户管理数据库
9、原理与应用(基于MySQL)912.2.3 修改用户账号修改用户账号修改用户账号使用RENAME USER语句。语法格式:语法格式:RENAME USER old_user TO new_user ,old_user TO new_user.说明:说明:old_user:已存在的MySQL用户账号。new_user:新的MySQL用户账号。【例12.3】将用户sun的名字修改为qian。mysql RENAME USER sunlocalhost TO qianlocalhost;Query OK,0 rows affected(0.14 sec)12.2 用户管理用户管理数据库原理与应用(基
10、于MySQL)10使用RENAME USER语句注意事项:RENAME USER语句用于对原有MySQL账号进行重命名。如果系统中新账户已存在或旧账户不存在,语句执行会出错。12.2.4 修改用户口令修改用户口令修改用户口令使用SET PASSWORD语句。语法格式:语法格式:SET PASSWORD FOR user=password 【例12.4】将用户qian的口令修改为abc。mysql SET PASSWORD FOR qianlocalhost=abc;Query OK,0 rows affected(0.10 sec)使用SET PASSWORD语句注意事项:如果系统中账户不存在
11、,语句执行会出错。12.2 用户管理用户管理数据库原理与应用(基于MySQL)1112.3 权限管理权限管理12.3.1 授予权限授予权限 权限的授予使用GRANT语句。语法格式:语法格式:GRANT priv_type(column_list),priv_type(column_list).ON object_type priv_level TO user_specification,user_specification.REQUIRE|NONE|ssl_option AND ssl_option.|WITH with_option.其中,object_type:TABLE|FUNCTION
12、|PROCEDURE priv_level:数据库原理与应用(基于MySQL)12 *|*.*|db_name.*|db_name.tbl_name|tbl_name|db_name.routine _name user_specification:user IDENTIFIED BY PASSWORD password|IDENTIFIED WITH auth_plugin AS auth_string with_option:GRANT OPTION|MAX_QUERIES_PER_HOUR count|MAX_UPDATES_PER_HOUR count|MAX_CONNECTIONS_
13、PER_HOUR count|MAX_USER_PER_HOUR count12.3 权限管理权限管理数据库原理与应用(基于MySQL)13说明:说明:(1)priv_type:指定权限的名称,例如SELECT、INSERT、UPDATE、DELETE等操作。(2)column_list:该可选项用于指定要授予表中哪些列。(3)ON子句:用于指定权限授予的对象和级别,例如要授予权限的数据库名或表名等。(4)object_type:该可选项用于指定权限授予的对象类型,包括表、函数和存储过程。(5)priv_level:指定权限的级别,授予的权限有以下几组:列权限:和表中的一个具体列相关。例如,使
14、用UPDATE语句更新表student中sno列的值的权限。表权限:和一个具体表中的所有数据相关。例如,使用SELECT语句查询表student的所有数据的权限。12.3 权限管理权限管理数据库原理与应用(基于MySQL)14 数据库权限:和一个具体的数据库中的所有表相关。例如,在已有的stusys数据库中创建新表的权限。用户权限:和MySQL所有的数据库相关。例如,删除已有的数据库或者创建一个新的数据库的权限。在GRANT语句中,可用于指定权限级别的值的格式如下:*:表示当前数据库中所有表。*.*:表示所有数据库中所有表。db_name.*:表示某个数据库中所有表。db_name.tbl_n
15、ame:表示某个数据库中的某个表或视图。tbl_name:表示某个表或视图。db_name.routine _name:表示某个数据库中的某个存储过程或函数。(6)TO子句:指定被授予权限的用户。12.3 权限管理权限管理数据库原理与应用(基于MySQL)15(7)user_specification:该可选项与CREATE USER语句中的user_specification部分一样。(8)WITH子句:用于实现权限的转移和限制。1.授予列权限授予列权限授予列权限时,priv_level的值只能是SELECT、INSERT和UPDATE,权限后面需要加上列名列表。【例12.5】授予用户lee
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第12章 安全管理 12
限制150内