实验4 权限管理
实验目的:
1.掌握数据库用户帐号的建立与管理 2.掌握数据库用户权限的管理
实验要求:
1.理解数据库安全的重要性 2.了解MySQL的安全机制
实验内容:
1.数据库用户帐号的建立与管理 2.用户权限的管理
实验步骤:
说明:按实验步骤对数据库YGGL中的三个表进行操作,三个表结构如下(具体参看实验2): Departments (DepartmentID,DepartmentName,Note) Employees
(EmployeeID,Name,Sex,Birthday,Education,WorkYear,Address,PhoneNumber,DepartmentID)
Salary(SalaryID,InCome,OutCome,Time, EmployeeID) 要求:完成SQL
1. 数据库用户帐号的建立与管理
(1)创建数据库用户user_1和user_2,密码都为1234(服务器为本机服务器,名为localhost)。
Create user user_1@localhost identified by ‘1234’; Create user user_2@localhost identified by ‘1234’; (2)将用户user_2的名称修改为user_3。 Rename user user_2@localhost to user_3@localhost; (3)将用户user_3的密码修改为123456。
Set password for user_3@localhost=password(‘123456’); Alter user user_3 identified by ‘123456’;//5.6.27报错
(4)删除用户user_3。
Drop user user_3@localhost ;
(5)退出MySQL,再次以user_1用户身份登录MySQL。 Mysql –h localhost –u user_1 -p 思考题:
1.以user_1用户身份登录MySQL后,可以对服务器端数据库YGGL进行查询以及更新操作吗?实际操作试试,并解释原因。
不能,因为user_1没有查询、更新数据库的权限
2.MySQL的用户信息存储在MySQL哪个数据库的哪个表中? User
2.用户权限的管理
重新以root身份登录MySQL服务器后运行下面的SQL语句:
(1)授予用户user_1对YGGL数据库中Employees表的所有操作权限。 Grant all on yggl.emlpoyees to user_1@localhost;
(2)授予用户user_1对YGGL数据库中Departments表的查询、插入、修改权限。 Grant select,insert,update on yggl.departments to user_1@localhost;
(3)授予用户user_1对YGGL数据库的所有权限。 Grant all on *.* to user_1@localhost;
(4)授予用户user_1对YGGL数据库中Salary表上的SELECT权限,并允许其将权限授予其它用户。
Grant select on yggl.sqlary to user_1@localhost with grant option;
执行完后可以以user_1用户身份登录MySQL,用户可以使用GRANT语句将自己在该表的所拥有的权限授予其他用户。
(5)回收用户user_1对YGGL数据库中Employees表的SELECT操作权限。 Revoke select on yggl.employees from user_1@localhost; 思考题:
1.思考表权限、列权限、数据库权限和用户权限的不同之处。 列权限是对表中列的操作的权限
表权限是对数据库中表操作的权限 数据库权限是对数据库操作的权限
用户权限可以限制改用户登录、操作数据库、数据库中内容的权限,还有创建用户的权限等等,不同的用户可以具有不同的操作权限
用户权限主要是通过登录密码、端口号、主机名等限制用户的登录方式,数据库、表、列权限则更加注重数据的安全性,通过限制用户对其的权限达到数据安全