1、*,数据库原理及应用,电子科技大学,-,陆鑫,数据库系统原理与开发,5.4,安全管理,用户、角色、权限管理,掌握,数据库用户管理,方法,掌握数据库权限管理方法,掌握数据库角色管理方法,【,本节学习目标,】,一、用户管理,用户要访问数据库,必须先在,DBMS,中创建其账号,并成为数据库的用户。此后,用户每次访问数据库,都需要在,DBMS,进行身份,验证,,只有合法用户才能进入系统,访问操作数据库对象。,实现用户管理方式:,数据库服务器执行,SQL,语句管理用户,通过管理工具,GUI,操作管理用户,1.,用户创建,SQL,语句,CREATE USER,WITH option;,用户管理,在数据库安
2、全管理中,DBMS需要对每个用户进行管理,如用户创建、用户修改、用户删除管理等。,CREATE USER,userA WITH,LOGIN,NOSUPERUSER,NOCREATEDB,NOCREATEROLE,INHERIT,NOREPLICATION,CONNECTION LIMIT-1,PASSWORD 123456;,例,创建一个新用户,其账号名字为“,userA,”,密码为“,123456,”。该用户具有登录权限(,Login,)和角色继承权限,(,Inherit,)系统权限,,但它不是超级用户,(,SuperUser,),,不具有创建数据库权限,(,CreateDB,),、创建角色
3、权限,(,CreateRole,),、数据库复制权限,(,Replication,),,此外数据库连接数,(,Connection Limit,),不受限。,用户创建,SQL,语句执行,运行按钮,SQL,语句,结果消息,2.,用户修改,SQL,语句,ALTER USER,WITH,option .;-,修改用户的属性,ALTER USER,RENAME TO,;-,修改用户的名称,ALTER USER,SET,TO|=value|DEFAULT;,-,修改用户的参数值,ALTER USER,RESET,;-,重置用户参数值,例,修改用户“,userA,”的账号密码为“,gres123,”。同时
4、也限制该用户的数据库连接数为,10,。,ALTER USER,userA,CONNECTION LIMIT,10,PASSWORD,gres123;,用户修改,SQL,语句执行,运行按钮,SQL,语句,结果消息,3.,用户删除,SQL,语句,DROP USER,;,例,在数据库中,删除用户“,userA,”。可以通过执行如下用户删除,SQL,语句实现用户删除。,DROP USER,userA;,用户删除,SQL,语句执行,运行按钮,SQL,语句,结果消息,二、权限管理,权限管理基本操作:,授予权限,收回权限,拒绝权限,数据库权限管理,是指,DBA,管理员或数据库对象拥有者对其所拥有对象进行权限
5、控制设置。,权限类别:,数据库系统权限,数据库对象访问操作权限,数据库对象定义操作权限,1.,权限管理,SQL,语句,GRANT,ON,TO,数据库用户名,|,用户角色名,;,REVOKE,ON,FROM,数据库用户名,|,用户角色名,;,DENY,ON,TO,数据库用户名,|,用户角色名,;,2.,权限管理实例,例,在,3.7.1,节的工程项目管理系统中,,DBA,管理员赋予员工用户(,userA,)对部门表(,Department,)、员工表(,Employee,)、项目表(,Project,)和任务表(,Assignment,)的读取数据权限。,GRANT SELECT ON,Depar
6、tment,TO,userA;,GRANT SELECT ON,Employee,TO,userA;,GRANT SELECT ON,Project,TO,userA;,GRANT SELECT ON,Assignment,TO,userA;,对,用户,“,userA,”实现,授权,SQL,程序如下,用户授权,SQL,语句执行,运行按钮,SQL,语句,结果消息,三、角色管理,角色管理实现方式:,执行,SQL,语句管理角色,通过,GUI,操作管理角色,在,DBMS,中,为了方便对众多用户及其权限进行管理,通常将一组具有相同权限的用户定义为,角色,(Role),。,角色管理内容:,创建角色,修改角
7、色,删除角色,1.,角色管理,SQL,语句,CREATE ROLE,WITH,option .;-,创建角色,ALTER ROLE,WITH,option .;-,修改角色属性,ALTER ROLE,RENAME TO,;-,修改角色名称,ALTER ROLE,SET,TO,|=value|DEFAULT;,-,修改角色参数值,ALTER ROLE,RESET,;-,复位角色参数值,DROP ROLE,;-,删除指定角色,2.,角色管理实例,例,在工程项目管理系统中,假定需要在,ProjectDB,数据库内创建经理角色,Role_Manager,。该角色,具有登录权限(,Login,)和角色继
8、承权限,(,Inherit,)系统权限,,但它不是超级用户,(,SuperUser,),,不具有创建数据库权限,(,CreateDB,),、创建角色权限,(,CreateRole,),、数据库复制权限,(,Replication,),,此外数据库连接数,(,Connection Limit,),不受限。,CREATE ROLE,Role_Manager,WITH,LOGIN,NOSUPERUSER,NOCREATEDB,NOCREATEROLE,INHERIT,NOREPLICATION,CONNECTION LIMIT-1;,角色创建,SQL,语句执行,运行按钮,SQL,语句,结果消息,3.
9、,角色权限授予,例,在创建,好,经理角色,Role_Manager,后,还需要赋予,该角色,对数据库表,Department,、,Employee,、,Project,、,Assignment,的插入、修改、删除、查询,权限。,GRANT,SELECT,INSERT,UPDATE,DELETE,ON,Department,TO,Role_Manager;,GRANT,SELECT,INSERT,UPDATE,DELETE,ON,Employee,TO,Role_Manager;,GRANT,SELECT,INSERT,UPDATE,DELETE,ON,Project,TO,Role_Manager;,GRANT,SELECT,INSERT,UPDATE,DELETE,ON,Assignment,TO,Role_Manager;,角色授权,SQL,语句执行,运行按钮,SQL,语句,结果消息,本节学习结束!,