《数据库原理及应用教程-MySQL8.0》课件 第11章 数据库的安全管理.ppt
11.4.2授予和撤销角色权限2.撤销角色权限【例11-20】撤销角色role2删除表中数据的权限。REVOKEDELETEONteaching.*FROMrole2@localhost;查询role2角色的权限:SELECT*FROMdbWHEREhost=localhostANDuser=role2;11.4.3授予和撤销用户角色如果想让某用户成为某角色的成员,就需要授予其该角色;如果不再想让某用户成为某角色的成员,可以撤销其相应的角色。1.授予用户角色授予用户角色的语法格式如下:GRANTrole[,…n]TOlogin_name[,…n];【例11-21】为用户user2授予role1角色。GRANTrole1@localhostTOuser2@localhost;如果想查看哪些用户是那些角色的成员,可以查询role_edges表。SELECT*FROMrole_edges;11.4.3授予和撤销用户角色2.撤销用户角色撤销用户角色的语法格式如下:REVOKErole[,…n]FROMlogin_name[,…n];【例11-22】撤销用户user2的role1角色。REVOKErole1@localhostFROMuser2@localhost;11.4.4删除角色如果某些角色不再需要了,可以将其删除,删除语句的语法格式如下:DROPROLErole[,…n];【例11-23】删除role1角色。DROPROLErole1@localhost;注意:如果某个角色还有成员用户,删除该角色后,用户的角色成员身份自动撤销。11.5数据加密加密是一种帮助保护数据的机制,它通过特定的加密(encryption)算法和密钥(secretkey)将数据变为乱码,使原始数据转为不可读形式,只有拥有密钥的访问者才能使用解密(decryption)算法和密钥将数据解密,实现正确的读取。11.5.1数据加密简介1.数据加密分类一般来说,加密可以分为两大类:对称加密(SymmetricCryptography)和非对称加密(AsymmetricCryptography)。11.5.1数据加密简介对于对称加密而言,因为使用数据时不仅仅需要传输数据本身,还要通过某种方式传输密钥,这很有可能使得密钥在传输的过程中被窃取。而对于非对称加密,私钥持有人可以把公钥发送给任何人,但不需要将私钥发送出去,因此安全性大大提高。对称加密算法简单、效率高,非对称加密算法复杂、效率低,因此,一种折中的办法是使用对称密钥来加密数据(数据一般较大),而使用非对称密钥来加密对称密钥(密钥一般较小)。这样既可以利用对称密钥的高性能,也可以利用非对称密钥的可靠性。11.5.1数据加密简介2.MySQL中的加密简介MySQL的加密思路有两种,一是在数据库外部加密后存入数据库,二是在数据库内部对数据进行加密。第二种比第一种更方便使用,因为外部加密每一次的查找都需要先算出加密后的数据再放入MySQL中,返回的也是加密的数据,需要在外部进行解密;而第二种可以直接在MySQL中传原值和加密的密钥,解密也可以在MySQL中完成。另外,外部加密所有的加密操作都需要在程序中完成,数据库中加密的数据仅仅是对某一特定程序有意义,而另外的程序如果没有对应的解密密钥和算法,则数据变得毫无意义。11.5.1数据加密简介?MySQL可以对数据库表中特定列进行加密,只保护“用户名”\“密码”\“银行卡号”等敏感数据,既有利于数据的安全性又可以提高数据库的访问速度。(1)单向加密只能对数据进行加密,不能对已经加密的数据再进行解密;采用这种加密方法就保证了被加密的数据只有用户一个人知道,其他人永远无法知道。?MySQL中常用的单向加密函数包括MD5()、SHA()等.(2)双向加密既可以对数据进行加密,也可以对数据进行解密。11.5.1数据加密简介?MySQL中常用的对称加密函数:ENCODE(str,key)?:使用key作为密钥加密字符串str,结果是一个二进制字符串,它以blob类型存储。DECODE(str,key):使用key作为密钥解密加密字符串str。AES_ENCRYPT(str,key)?:?返回用密钥key对字符串str利用高级加密标准算法加密后的结果,结果是一个二进制字符串,以blob类型存储。AES_DECRYPT(