Oracle 的基本使用和用户管理以及Oracle 权限

本文介绍了Oracle数据库中sys与system用户的区别,normal、sysdba、sysoper权限的区别,以及Oracle的基本使用、用户管理、权限分类(系统权限与对象权限)和资源配置profile文件的相关内容。重点讲解了如何创建、修改和删除用户,以及权限的授予和回收。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、sys用户与system的区别

    1.1、存储数据的重要性不同

        sys用户 所有 oracle 的数据字典的基表和视图都存放在 sys 用户中,这些基表和视图对于 oracle 的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。 sys 用户拥有 dba , sysdba , sysoper 等角色或权限,是 oracle 权限最高的用户。

        system用户用于存放次一级的内部数据,如oracle 的一些特性或工具的管理信息。 system 用户拥有普通 dba 角色权限。

    1.2、权限的不同

        system用户只能用 normal 身份登陆 em ,除非你对它授予了sysdba 的系统权限或者 sysoper 系统权限。

        sys 用户具有 “SYSDBA” 或者 “SYSOPER” 系统权限,登陆 em 也只能用这两个身份,不能用normal 。

        以 sys 用户登陆 Oracle ,执行 select * from V_$PWFILE_USERS; 可查询到具有 sysdba 权限的用户,如:


        由上图可以看出system已经授权sysdba权限。

        system如果正常登录,它其实就是一个普通的 dba 用户,但是如果以 as sysdba 登录,其结果实际上它是作为 sys 用户登录的。因此在 as sysdba 连接数据库后,创建的对象实际上都是生成在 sys 中的。其他用户也是一样,如果 as sysdba 登录,也是作为 sys 用户登录的

        

2、normal 、 sysdba 、 sysoper 的区别

    normal 是普通用户

    sysdba 拥有最高的系统权限,登陆后是 sys

    sysoper 主要用来启动、关闭数据库, sysoper登陆后用户是 public

    

3、Oracle的基本使用

conn 连接oracle                                           用法 conn 用户名/密码[as sysdba /sysoper]
disc 断开与当前数据库的连接                                 用法 disc
passw 修改用户密码(自己可以修改自己的 dba可以修改他人的)      用法 passw username
show user 显示当前用户名                                    用法 show user    
exit 断开并退出数据库                                       用法 exit
start 运行sql脚本                                          用法 start 脚本路径
edit 编辑指定的sql脚本                                      用法 edit 脚本路径
spool 将sqlplus屏幕中的文本输入到指定文件中 spool 指定文件路径 spool off结束读屏
linesize 设置显示行的宽度(默认为80个字符)                    用法 linesize 120
pagesize 设置每页显示的行数目(默认为14)                      用法 pagesize 10

4、Oracle的用户管理

    1、创建用户

        条件 需要具有创建用户的权限,如sys,system,sysdba,dba role等

        语法 create user user_name identified by password

        注意 此时创建的用户并不能进行登录,需要对用户赋予相应权限之后才能进行登录

    2、修改用户属性

        条件 需要具有修改用户属性的权限

        语法 alter user user_name 属性 + 状态

    3、删除用户

        条件  具有删除用户的权限

        语法 drop user user_name  [cascade]      加上cascade则将用户连同其创建的东西全部删除

        注意  如果该用户创建了对象,要加cascade删除,否则删除不掉,另外,不能删除当前正在与Oracle实例相连的用户。

5、Oracle权限

    5.1、分类 

        Oracle权限可分为系统权限和对象权限

        系统权限    允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等

        对象权限    允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等

        5.1.1 系统权限

            超过一百多种有效的权限(select * from system_privilege_map查)数据库管理员具有高级权限。

            1、常用的系统权限

       create session                      创建会话
       create sequence                     创建序列
       create synonym                      创建同名对象
       create table                        在用户模式中创建表
       create any table                    在任何模式中创建表
       drop table                          在用户模式中删除表
       drop any table                      在任何模式中删除表
       create procedure                    创建存储过程
       execute any procedure               执行任何模式的存储过程
       create user                         创建用户
       drop user                           删除用户
       create view                         创建视图

            2、授予用户系统权限

                 系统权限只能由dba用户授出:sys, system(最开始只能是这两个用户)

                语法   grant privilege [, privilege...] to user [,user| role, public...][with admin option];

                with admin option 使用户同样具有分配权限的权利,可将此权限授予别人

            3、查看系统权限

                dba_sys_privs  --针对所有用户被授予的系统权限

               user_sys_privs --针对当前登陆用户被授予的系统权限

            4、回收系统权限

                要么是dba要么是授权用户才可以收回权限

                revoke {privilege | role} from {user_name | role_name | public}

                对于使用with admin option 为某个用户授予系统权限,那么对于被这个用户授予相同权限的所有用户来说,取消该用户的系统权限并不会级联取消这些用户的相同权限

        5.1.2 对象权限

            1、不同的对象具有不同的对象权限,对象的拥有者拥有对象的所有权限,对象的拥有者可以向外分配权限,ORACLE一共有8种对象权限

对象权限视图序列过程
修改(alter)   
删除(delete)   
执行(execute)   
索引(index)   
插入(insert)   
关联(references)  
选择(select)  
更新(update)            

            2、授予用户对象权限

                条件   dba或对象的拥有者

                语法   grant object_priv|all[(columns)]onobject to {user|role|public} [with grant option];

                with grant option:允许用户再次给其它用户授权

            3、查看对象权限

                user_sys_privs    用户拥有的系统权限

                user_tab_privs    用户拥有的对象权限

             4、回收对象权限

                要么是dba要么是授权用户才可以收回权限

                revoke {privilege [, privilege...]|all} on object from {user[, user...]|role|public}

                如果取消某个用户的对象权限,对于该用户使用with grant option授予其它用户相同权限来说,将级联删除这些用户权限

5、Oracle 资源配置 profile文件

    1、profile 简介

        Profile作为用户配置文件,它是口令限制、资源限制的命名集合。Profiles作为Oracle安全策略的重要组成部分,利用它可以对数据库用户进行基本的资源限制,并且可以对用户的密码进行管理。建立oracle数据库时,oracle会自动建立名为Default的profile文件,当建立用户没有指定profile,那么oracle就将defalut分配给用户,初始化的Default没有进行任何口令和资源限制。

        创建profile文件

            语法 create profile 文件名 参数;

        将创建的profile文件分配给用户

            语法    alter user 用户名 profile 文件名;

    2、使用profile管理密码

        1) 账户锁定

            账户的锁定策略是指用户在连续输入指定次数错误密码后,Oracle会自动锁定用户的账户,并且可以规定账户的锁定时间。Oracle为锁定用户提供了一下两个参数。

                1、  failed_login_attempts 限制用户在登录到Oracle数据库是允许失败的次数。

                2、  password_lock_time 指定用户被锁定的天数

            如果建立profile文件时没有提供password_lock_time 将自动使用默认值unlimited,这种情况下,需要dba手动解锁用户,可以使用alter user username account unlock对用户解锁

        2) 密码过期时间 

            密码过期时间是指强制用户定期修改自己的密码,当密码过期后,Oracle会计时提醒用户修改密码。

            密码宽限期是指密码到期之后的宽限使用时间。为了强制用户定期修改密码,Oracle提供了以下2个参数。

                1、password_life_time  设置用户密码的有效时间,单位为天数。

                2、password_grace_time 设置密码失效的宽限时间。

        3) 密码历史

            密码历史是用于控制账户密码的可重复使用次数或可重用时间。当用户修改密码时,Oracle会对新旧密码进行比较,以确保用户不会重用过去用过的密码。关于密码历史有如下2个参数。

                1、password_reuse_time   密码可重用的时间,单位为天。

                2、password_reuse_max       密码在能够被重新使用之前,必须改变的次数。

    3、维护profile文件

        1) 修改profile文件

            语法    alter profile [资源文件名] limit[资源名] 设置的具体值;

            例如    alter profile default limitfailed_login_attempts 100;

        2) 删除profile文件

            语法    drop profile [资源文件名][cascade] ;

            若创建的profile已经授权给了某个用户,使用cascade级联收回相应的限制,收回限制信息后将以系统默认的profile对该用户进行限制。已分配的profile,删除时必须加cascade选项。

            如果不删除profile,只是取消单个用户的profile

                语法 alter user dinya profile default;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值