千家信息网

用户and权限

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,每次谈到用户和权限,总感觉没什么去分享和交流的。其实不然,不恰当的去形容好比你是个客户去买房子,你去看200W的房子和1000W的房子那绝对不一样,服务级别享受待遇也截然不同。数据库中用户和权限好比钱
千家信息网最后更新 2025年11月08日用户and权限

每次谈到用户和权限,总感觉没什么去分享和交流的。其实不然,不恰当的去形容好比你是个客户去买房子,你去看200W的房子和1000W的房子那绝对不一样,服务级别享受待遇也截然不同

数据库中用户和权限好比钱和房子,你用户级别越高其实对应的权限越高,技术无非都是从这个世界人性化演变过来的。扯的多一些,那么我数据库中用户密码最基本的信息,户使用特定用户账号队友自己的特点和操作权限。那么角色就是权限的集合,角色可以分配给用户(给你钥匙),把这个权限特定集合分配用户。

啥叫用户?

分为两类:1、创建库的时候系统自己创建的用户(系统用户) 2、另一种用系统用户创建的用户,叫普通用户

格式:

select username,account_status,default_tablespace,temprorary_tablespace from user_users;

解释:

查询当年系统中所有的用户和状态所属的表空间。

格式:

create user user_name identified by password default tablespace users;

解释:

学习Oracle一定要学会用英语去看,用英语翻译上一句命令就是,创建用户user_name确认密码password默认表空间是users;其实一句话的是,无压力(黑色是关键字)。

dba_user这个表也可以查看详细的信息,一个库表,一个用户!

用户与模式(Schema)

模式就是说用户拥有的对象集合。对象有表,索引,触发器等等。每个用户都会有独立的模式信息,新建用户除外,他们的集合为空的。Schema为空,Schema必须依赖于用户存在。

格式:

select sys_count('userenv','current_user')current_user,sys_countext('userevn','current_schema')current_schema from dual;

解释:

通过本条的查询语句发现我们用System登录后可以看到集合,到底有啥意义呢,就是说Schema_对象名组合可以限制数据库中唯一的对象。

系统用户sys和system

系统用户sys和system是最常用的两个用户系统,那么sys是ORACLE数据库中最高权限用户,角色为sysdba(数据库管理员), system仅次于sys用户,角色是SYSOPER(数据库操作员).比如sys可以创建库,那么system不可以结合没有这个权限(默认没有)。

格式:

show parameter db_name;

解释:

代码show parameter用于显示说明db_name(数据库名称)参数信息。

格式:

alter user system account unlock;

解释:

解锁用户,比如scott用户默认是不能登陆状态,解锁后dba_users查询状态则是OPEN打开

格式:

alter user scott identified by password;

解释:

修改scott的密码,然后登陆。

权限好比你等级,好比法律就是你在社会制度中的最高等级,Privilege的对象用户,只要是数据库操作对象和可执行的多动都会受到限制的。那么也有两种权限:1、系统权限 2、对象权限

系统权限:

系统权限是针对数据库特定操作,如创建数据表,与对象权限不用,对已有的对象进行访问和操作。

格式:

select distinct privilege from dba_sys_privs;

解释:

查看系统权限都有哪一些(主要组成部分)

分配权限:

格式:

grant create session to tiger; --赋予创建会话(连接)的权限

grant create table to tiger; --赋予创建表权限

alter user tiger quota 10M on users quota 2M on temp;--因为没有分配用户能使用多大的表空间没权限,用system分配空间大小

select * from dba_sys_privs where lower(grantee) = 'tiger';--查询tiger用户目前有的系统权限

revoke create table from tiger; --撤回回收赋予tiger的权限

对象权限:

格式:

select grantee,table_name,privilege from dba_tab_privs where lower(grantee)='tiger';

解释:

查看grantee有的对象权限。

格式:

grant select on dual to tiger;--把system查询dual赋权给tiger

grant insert on table to tiger; --赋予创建table(指定表名)权限

grant update(table_name) to tiger; --赋权只能更新这表中的name列;

grant all on table to tiger;--赋权全部对象权限

revoke all on table to tiger;--将tiger的对象权限全部收回


角色:

虽然我们可以利用系统和对象权限去控制,我们会发现任务量会变的非常复杂麻烦,在这个背景下,Oralce提出了角色的概念,角色我们该是介绍过就是系统权限或者对象权限的集合。Oracle允许创建角色,然后将角色信息赋予用户,从而间接的将权限信息添加给用户,重要的是角色可复用,某一种程度上大大减少了重复的工作和代码量。

利用继承的特性,从简单的角色衍生出复杂的角色,无疑提高的权限分配的工作和效率

一起来创建一个角色

格式:

create role role_employee;

解释:

create role创建角色的关键字

格式:

grant all on table to role_employee;--赋予全部权限给角色role

grant role_employee to tiger;--把角色的全部权限给tiger用户,需要注意必须重新登录数据库才可以生效。

继承角色:

角色可以继承另一个角色的权限信息,减少自身grant的动作指令

格式:

grant system to role_employee;

解释:

把system的权限赋权给角色role,虽然感觉意义不大,但是一些严谨的数据库对用户安全会非常重视,每一个角色都会有分类,当代码量比较复杂时候角色的用处当然会很重要。

格式:

alter user cat default role none;

解释:

禁止cat用户默认角色全部禁止,查询session_roles则为空

格式:

set role role_hr;

解释:

启动角色role_hr,如果有多个角色可以用逗号隔开

到最后回头看一看文章,就是用户角色权限三者变化和相互依赖的关系,数据库安全仅仅依赖用户的控制是不可行的,那么一个相对安全逻辑紧密的数据库没有用户角色权限等策略是一定不行的,清晰思路一切难题都会迎刃而解!

用户 权限 角色 对象 格式 数据 系统 数据库 解释 信息 就是 分配 查询 房子 空间 赋权 复杂 代码 密码 模式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 宣传部门学习网络安全 云冈区智能化网络安全诚信经营 网络技术支撑是做什么 网络安全教育总结2021 专利预警分析数据库 海康视频服务器恢复出厂密码 河南软件开发解决方案维护 村镇网络安全教育教案 证券交易和服务器的连接已断开 远健网络技术有限公司怎么样 电力网络安全事件分类 维护网络安全政治大题 学网络安全法的目的 相机修复数据库 成都网络安全有名公司 网络安全顾问百科 金山网络技术公司电话 DW的服务器站点怎么弄 软件开发和产品经理什么意思 软件开发有什么类型 长宁区节能软件开发产品介绍 创建数据库的索引和视图实验 上海晓花互联网科技有限公司 吉林服务器电源种类有哪些 服务器咋添加小地图 公司有服务器吗 闪电网络技术股份有限公司 怎样优化网络技术 信息网络安全工程师工资 南通网络安全准入控制系统报价
0