您现在的位置是:主页 > news > 如何做网站的内容/百度升级最新版本
如何做网站的内容/百度升级最新版本
admin2025/5/21 10:07:58【news】
简介如何做网站的内容,百度升级最新版本,杭州微信网站建设,2019年河北最新传染病疫情12用户管理与权限分配12.1 用户与模式的关系12.2 创建与管理用户12.2.1 身份验证分类12.2.2 创建用户12.2.3 修改用户12.2.4 删除用户12.3 用户权限管理12.3.1 权限简介12.3.2 系统权限授权12.3.3 系统权限回收12.3.4 对象权限授权12.3.5 对象权限回收12.3.6 查询用户权限12.4 …
12用户管理与权限分配
- 12.1 用户与模式的关系
- 12.2 创建与管理用户
- 12.2.1 身份验证分类
- 12.2.2 创建用户
- 12.2.3 修改用户
- 12.2.4 删除用户
- 12.3 用户权限管理
- 12.3.1 权限简介
- 12.3.2 系统权限授权
- 12.3.3 系统权限回收
- 12.3.4 对象权限授权
- 12.3.5 对象权限回收
- 12.3.6 查询用户权限
- 12.4 角色管理
- 12.4.1 角色简介
- 12.4.2 预定义角色
- 12.4.3 创建角色与授权
- 12.4.4 管理角色
- 12.4.5 角色与权限查询
- 12.5 资源配置PROFILE
- 12.5.1 显示PROFILE
- 12.5.2 使用PROFILE
- 12.5.3 维护PROFILE
- 12.5.4 PROFILE资源参数说明
12.1 用户与模式的关系
这里所说的用户(User),更准确的说是账户。它是Oracle数据库基本访问控制机制,当连接到Oracle数据库时,操作人员必须提供正确的用户名和密码。
连接数据库的用户所具有的权限是不同的。Oracle提供了一些特权用户,比如SYSDBA或SYSOPER,这类用户主要用于执行数据库维护操作,区别在于SYSDBA不仅具备SYSOPER的所有权限,还可以建立数据库,执行不完全恢复。
与用户密切关联的一个概念是模式也称为方案(Schema),模式是用户所拥有的数据库对象的合集,在Oracle数据库中,对象是以用户来组织的,用户与模式是一一对应的关系。
访问数据库对象时,需要注意以下几点:
- 同一个模式中不能存在同名的对象,但不同模式中的对象名称可以相同。
- 用户可以直接访问其他模式的对象,需要具有该对象的相应访问权限。
- 当用户要访问其他模式的对象时,必须附加模式名作为前缀。
12.2 创建与管理用户
创建用户并授予权限时Oracle系统管理员的基本任务之一。
12.2.1 身份验证分类
Oracle为用户提供了3种身份验证方式:密码验证、外部验证和全局验证。
1、密码验证。
当一个使用密码验证机制的用户试图连接到数据库时,数据库会核实用户名是否是一个有效的数据库账户,并且验证密码与该用户在数据库中存储的密码是否相同。由于用户信息和密码都存储在数据库内部,所以也称为数据库验证用户。
2、外部验证。
指当用户试图连接数据库时,数据库会核实用户名是否是一个有效的数据库账户,并且确认该用户是否已经完成了操作系统级别的身份验证。外部验证并不在数据库中存储一个密码。
3、全局验证。
指用户不在数据库中存储验证密码,而是通过一种高级安全选项所提供的身份验证服务来进行。
除非特别说明,以下所创建和使用的用户都是密码验证用户。其余两种很少使用。
12.2.2 创建用户
(|表示或者,{}表示其中内容不可分割,[]表示其中内容可选)
CREATE USER username
{IDENTIFIED BY password}|{IDENTIFIED EXTERNALLY}|{IDENTIFIED GLOBALLY AS 'CN=user'}
[DEFAULT TABLESPACE tablespace_name]
[TEMPORARY TABLESPACE tablespace_name]
[QUOTA {number K|M|G}|UNLIMITED] ON tablespace_name1
[,QUOTA {number K|M|G}|UNLIMITED] ON tablespace_name2
[,…]… ON tablespace_namen
[PROFILES profile_name]
[ACCOUNT LOCK|UNLOCK];
对以上参数讲解:
username:要创建的用户名。
password:要创建用户的密码。
IDENTIFIED BY password:表示创建密码验证用户,这种情况下会将密码存储在数据库中。
IDENTIFIED EXTERNALLY:表示创建外部验证用户,这种情况下要求该用户必须与操作系统中所定义的用户名相同。?这里的单词是externally还是exeternally,有没有by,没有验证过?
IDENTIFIED GLOBALLY AS ‘CN=user’:表示创建全局验证用户,由Oracle安全域中心服务器验证,CN名字表示用户的外部名。
[DEFAULT TABLESPACE tablespace_name]:指定该用户在创建对象时的默认表空间。默认为应用系统的默认永久表空间,见8.4.1设置默认表空间。
[TEMPORARY TABLESPACE tablespace_name]:指定该用户在创建对象时的临时表空间。默认为系统的默认临时表空间,见8.6.2临时表空间基本操作。
[QUOTA (number K|M|G)|UNLIMITED] ON tablespace_name1]:指定该用户在指定表空间中允许占用的最大空间,默认在默认表空间中无限制?。如果要禁止某个用户使用某个表空间,可以通过此设置该表空间的使用限额为0。
[PROFILES profile_name]:指定资源文件的名称,默认??。
[ACCOUNT LOCK|UNLOCK]:指定用户是否锁定,默认不锁定。
注意:初始创建的用户没有任何权限,不能执行任何数据库操作。为了使用户可以连接到数据库,必须授予其create session权限(或赋予角色)。
12.2.3 修改用户
可以修改用户口令、修改用户默认表空间、修改临时表空间、修改磁盘配额及资源限制等,修改用户的语法与创建用户的语法基本相似,只是把创建用户语法中的create关键字替换成alter。在此不做详细列举了( • ̀ω•́ )✧。
12.2.4 删除用户
删除用户后,Oracle会从数据字典中删除用户及其所有对象。
DROP USER username [CASCADE];
[CASCADE]:级联删除选项,如果用户包含数据库对象,必须加cascade选项连同该用户的所有对象一起删除。
12.3 用户权限管理
创建用户后,要使用该用户连接到Oracle系统并使用其资源,必须使用具有DBA角色的用户对新创建的用户进行授权。
12.3.1 权限简介
Oracle数据库中权限分为两大类:系统权限和对象权限。
系统权限指系统级对数据库进行存取和使用的机制。比如,session权限、执行DDL(Data Definition Language)语句的权限
对象权限指某一个用户对其他用户的表、视图、序列、存储过程、函数、包等操作权限,不同类型的对象具有不同的对象权限;对于某些模式对象,比如簇、索引、触发器、数据库链接等没有相应的实体权限,这些权限由系统权限进行管理。
12.3.2 系统权限授权
Oracle 11g含有200多种系统特权,列举在SYSTEM_PRIVILEGE_MAP数据目录视图中。授权操作使用GRANT命令。(|表示或者,{}表示其中内容不可分割,[]表示其中内容可选)
GRANT (sys_privi1[,sys_privi2,…])|rolename1 TO username|rolename2|PUBLIC [WITH ADMIN OPTION];
sys_privi:指Oracle系统权限名称,是一组约定的保留字。比如,“create table”为创建表权限。
rolename:角色。
username:被授予的用户名。
PUBLIC:保留字,指Oracle系统的所有用户。
[WITH ADMIN OPTION] :指被授予的用户可以再将权限授予另外用户。
常用的系统权限:connect、resource、create table、create session。
12.3.3 系统权限回收
回收权限使用REVOKE命令。(|表示或者,{}表示其中内容不可分割,[]表示其中内容可选)
REVOKE (sys_privi1[,sys_privi2,…])|rolename1 FROM username|rolename2|PUBLIC;
sys_privi:指Oracle系统权限名称,是一组约定的保留字。
rolename:角色。
username:被回收权限的用户名。
PUBLIC:保留字,指Oracle系统的所有用户。
注意:如果数据库管理员给用户A授予系统权限时带有WITH ADMIN OPTION选项,则该用户A有权将系统权限再次授予另外的用户B。在这种情况下,如果数据库管理员使用REVOKE命令回收用户A的系统权限,则用户B的系统权限仍然有效。
12.3.4 对象权限授权
与系统权限授权基本相同。(|表示或者,{}表示其中内容不可分割,[]表示其中内容可选)
GRANT (obj_privi1[,obj_privi2,…])|ALL
ON username1.obj_name TO username2|rolename|PUBLIC
[WITH ADMIN OPTION]|[WITH HIERARCHY OPTION];
obj_privi:指Oracle对象权限名称,是一组约定的保留字。
username1.obj_name:某模式的对象名。指允许username2用户使用obj_privi权限操作username1.obj_name对象。
username2:被授予权限的用户名。
rolename:角色。
PUBLIC:保留字,指Oracle系统的所有用户。
[WITH ADMIN OPTION] :指被授予的用户可以再将权限授予另外用户。
[WITH HIERARCHY OPTION]:在对象的子对象(比如在视图上再创建视图)上授权给用户。
常用的对象权限:select、insert、delete、update。
12.3.5 对象权限回收
与系统权限回收基本相同。(|表示或者,{}表示其中内容不可分割,[]表示其中内容可选)
REVOKE (obj_privi1[,obj_privi2,…])|ALL
ON username1.obj_name FROM username2|rolename|PUBLIC
CASCADE CONSTRAINTS;
obj_privi:指Oracle对象权限名称,是一组约定的保留字。
username1.obj_name:某模式的对象名。指允许username2用户使用obj_privi权限操作username1.obj_name对象。
username2:被回收权限的用户名。
rolename:角色。
PUBLIC:保留字,指Oracle系统的所有用户。
CASCADE CONSTRAINTS:表示有关联关系的权限也被撤销。
注意:如果数据库管理员给用户A授予对象权限时带有WITH ADMIN OPTION选项,则该用户A有权将对象权限再次授予另外的用户B。在这种情况下,如果数据库管理员使用REVOKE命令回收用户A的对象权限,则用户B的对象权限也被回收。(注意区别于系统权限回收情况)
12.3.6 查询用户权限
列举几个常用的数据字典:
数据字典表 | 说明 |
---|---|
dba_users | 数据库用户基本信息表 |
dba_sys_privs | 已授予用户或角色的系统权限 |
dba_tab_privs | 数据库对象上的所有权限 |
user_sys_privs | 登录用户可以查看自己的系统权限 |
role_sys_privs | 登录用户查看自己的角色 |
all_tables | 用户自己可以查询的基本信息 |
user_tab_privs | 用户自己将哪些基本权限授予哪些用户 |
all_tab_privs | 哪些用户给自己授权 |
12.4 角色管理
由于Oracle权限设置十分复杂,权限分类很多,这就为数据库管理员带来困难,而角色就是简化权限管理的一种数据库对象。
12.4.1 角色简介
角色是包含一个或多个权限的集合,它并不被用户所拥有。角色可以被授予任何用户,也可以从用户中将角色收回。一个用户至少被授予一个以上的预定义角色时才能使用Oracle系统资源。以下为示例图。
12.4.2 预定义角色
指数据库安装完成后由系统自动创建的一些常用角色,这些角色已经由系统授予了相应系统权限,可以直接使用。以下列出几个常用角色:CONNECT、RESOURCE、DBA、EXP_FULL_DATABASE、IMP_FULL_DATABASE。其中DBA包含了所有权限。
12.4.3 创建角色与授权
1、创建角色
语法格式
(|表示或者,{}表示其中内容不可分割,[]表示其中内容可选)
CREATE ROLE rolename
[{NOT IDENTIFIED}|{IDENTIFIED {BY password}|{BY EXTERNALLY}|GLOBALLY}];
rolename:角色名。
IDENTIFIED {BY password}:角色通过口令验证。
IDENTIFIED {BY EXTERNALLY}:角色通过操作系统验证。?这里的单词是externally还是exeternally,有没有by没有验证过?
IDENTIFIED GLOBALLY:角色由全局用户使用,该用户通过Oracle安全域中心服务器验证。
2、授权角色系统权限
GRANT sys_privi1 [,sys_privi2,...] TO rolename;
3、授权用户角色
GRANT rolename TO username;
12.4.4 管理角色
1、查看角色包含的权限
使用 role_sys_privs 数据字典查询。
2、修改角色密码
包含取消角色密码和修改角色密码两种情况。
ALTER ROLE rolename NOT IDENTIFIED; --取消角色密码
ALTER ROLE rolename IDENTIFIED BY password; --修改角色密码
3、启用角色
角色创建完成后必须要启用,不启用的角色即使授予了用户,用户也无法获得相应权限。
SET ROLE rolename [IDENTIFIED BY password];
--如果该角色创建时带有密码验证,则必须使用identified子句验证
12.4.5 角色与权限查询
通过dba_roles数据字典查询角色。
数据字典 | 说明 |
---|---|
dba_col_privs | 数据库列上的所有权限 |
dba_role_privs | 显示已经授予用户或其他角色的角色 |
dba_tab_privs | 数据库对象上的所有权限 |
dba_sys_privs | 已授予用户或角色的系统权限 |
12.5 资源配置PROFILE
PROFILE配置文件,是密码限制、资源限制的命名集合。
PROFILE作为Oracle安全策略的重要组成部分,可以对数据库用户进行基本的资源限制,对用户的密码进行管理。安装数据库时,Oracle会自动创建名为DEFAULT的默认配置文件(此文件没有任何密码和资源限制)。如果没有为新创建的用户指定DEFAULT配置文件,Oracle将为它自动指定DEFAULT配置文件。
PROFILE配置文件进行密码和资源管理时,密码管理总是处于被激活状态,资源管理需要手动激活。
12.5.1 显示PROFILE
1、通过查询数据字典视图dba_users,可以显示用户使用的PROFILE文件名。
SELECT PROFILE FROM dba_users WHERE USERNAME='username';
--修改相应用户名,查询此用户使用的PROFILE文件名
2、通过查询数据字典视图dba_profiles,可以显示PROFILE密码限制资源限制信息。
SELECT * FROM dba_profiles WHERE PROFILE='profile_name';
--修改相应PROFILE文件名,查询PROFILE文件信息
12.5.2 使用PROFILE
1、创建PROFILE文件
CREATE PROFILE profile_name LIMIT
resource_name1 parameter1
[resource_name2 parameter2 ...];
--resource_name为资源参数名,parameter为相应的参数
2、指定PROFILE文件
ALTER USER username PROFILE profile_name;
--指定username用户使用profile_name配置文件
3、使用PROFILE管理密码
可以实现4种密码管理功能:账户锁定、密码过期时间、密码历史、密码复杂度。
(1)账户锁定
FAILED_LOGIN_ATTEMPTS:用户登录到数据库时允许失败的次数,单位为次数。
PASSWORD_LOCK_TIME:用户被锁定的时间,单位为天。未设定时,默认情况下会一直锁定,需用DBA用户解锁。
(2)密码过期时间
PASSWORD_LIFE_TIME:用户密码有效时间,单位为天。
PASSWORD_GRACE_TIME:用户密码失效的“宽限时间”,单位为天。
(3)密码历史
PASSWORD_REUSE_TIME:用户密码可重用时间,单位为天。
PASSWORD_REUSE_MAX:用户密码在能够被重新使用前,必须改变的次数,单位为次数。
注意:这两个只能使用其中一个,并将另一个参数设置为UNLIMITED。
(4)密码复杂度
PASSWORD_VERIFY_FUNCTION:用户密码使用的校验函数,参数为校验函数名。
校验函数保存在utlpwdmg.sql文件中。
4、使用PROFILE管理资源
如果使用PROFILE管理资源,必须将RESOURCE_LIMIT参数设置为TRUE,以激活资源限制。
SHOW PARAMETER RESOURCE_LIMIT;
--查看RESOURCE_LIMIT参数值
ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;
--修改RESOURCE_LIMIT参数值为TRUE
12.5.3 维护PROFILE
1、修改PROFILE文件
ALTER PROFILE profile_name LIMIT
resource_name1 parameter1
[resource_name2 parameter2 ...];
--resource_name为资源参数名,parameter为相应的参数
对配置文件所做的修改只有在用户开始新会话时才会生效。
例:
alter profile password_life_time limit
cpu_per_session 20000
sessions_per_user 10
cpu_per_call 500
password_life_time 180
failed_login_attempts 10;
2、删除PROFILE文件
DROP PROFILE profile_name [CASCADE];
如果要删除的配置文件已指定给用户,必须使用CASCADE关键字。如果用户使用的配置文件被删除,则Oracle将自动为用户重新指定DEFAULT配置文件。
12.5.4 PROFILE资源参数说明
PROFILE配置文件中部分资源参数名及说明。如果不想指定参数则参数设为UNLIMITED。
resource_name | 参数类型 | 说明 |
---|---|---|
SESSION_PER_USER | 整数值 | 用户可以同时连接的会话数量,单位为个 |
CPU_PER_SESSION | 整数值 | 用户在一次会话期间使用CPU的时间,单位为百分之一秒 |
CPU_PER_CALL | 整数值 | 用户每条SQL语句使用CPU的时间,单位为百分之一秒 |
LOGICAL_READS_PER_SESSION | 整数值 | 每个会话读取的数据块数量,单位为个 |
CONNECT_TIME | 整数值 | 用户连接到数据库的最长时间,单位为分钟 |
IDLE_TIME | 整数值 | 用户会话连接到数据库的最长时间,单位为分钟 |
FAILED_LOGIN_ATTEMPTS | 整数值 | 用户登录到数据库时允许失败的次数,单位为次数 |
PASSWORD_LOCK_TIME | 整数值 | 用户被锁定的时间,单位为天 |
PASSWORD_LIFE_TIME | 整数值 | 用户密码有效时间,单位为天 |
PASSWORD_GRACE_TIME | 整数值 | 用户密码失效的“宽限时间”,单位为天 |
PASSWORD_REUSE_TIME | 整数值 | 用户密码可重用时间,单位为天 |
PASSWORD_REUSE_MAX | 整数值 | 用户密码能被重新使用前必须改变的次数,单位为次数 |
PASSWORD_VERIFY_FUNCTION | 函数名 | 用户密码使用的校验函数 |