• Oracle命令行中启动服务创建用户,权限,密码丢失


    1.windows下在启动服务

    启动监听:lsnrctl start

    启动服务:oradim -startup -sid orcl

    2.以sys身份进入 sqlplus /[@orcl] as sysdba 通过此方式就是以sys登陆

    3.show users

    显示为"sys"

    4.创建用户与授权

    SQL> create user lisi identified by lisi;

    用户已创建。

    SQL> grant create session to lisi;

    授权成功。

    SQL> grant unlimited tablespace to lisi;

    授权成功。

    SQL> grant create table to lisi;

    授权成功。

    用户就可以进行最基本的操作了,用户有创建表的权限,这表就是用户自己的,用户有对这个表操作的所有权限。

    create user lisi identified by lisi default tablespace 表空间名 tempory tablespace [临时] quota 50M on 空间;

    SQL> create user lisi
    2 identified by lisi
    3 default tablespace Users
    4 temporary tablespace temp
    5 Quota 50M on users
    6 Quota unlimited on Temp
    7 /
    create user lisi
    *
    第 1 行出现错误:
    ORA-30041: 无法在表空间上授予限额

    临时表空间不能使用限额。临时表空间主要支持排序。
    SQL> create user lisi
    2 identified by lisi
    3 default tablespace Users
    4 temporary tablespace temp
    5 Quota 50M on users
    6 /

    用户已创建。

    修改用户alter user lisi identified by lisi default tablespace ...

    5.撤销权限

    SQL> revoke create table from lisi;

    撤销成功。

    6.当前用户当前有哪些权限,Oracle有一些视图(数据字典)对外提供信息。

    SQL> select * from user_sys_privs;(还有user_tab_privs等)

    7.对象权限

    一个用户访问另一个用户创建的表

    select * from wangwu.mytable权限不够

    sys有权限访问所有用户的表。

    在wangwu下:

    SQL> grant select on mytable to lisi;

    授权成功。

    则lisi可以查询。

    SQL> grant insert on mytable to lisi;

    授权成功。

    所有对表的权限都赋予lisi:

    SQL> grant all on mytable to lisi;

    授权成功。

     对象权限可以细化到列

    grant insert(id) on mytable to lisi;

    8.public

    所有用户都拥有此权限

    grant create any table to public;

    9.权限传递

    系统权限:grant alter any table to lisi with admin option; 

    此时lisi就能把这个得到的权限授予给其他用户了。

    对象权限:grant select on A to lisi with grant option;

    有drop any table和update any table的权限,但没有drop table等权限。

    create any table的权限可以为其他用户创建表

    10.角色管理

    create role myrole;

    grant create session to myrole;

    grant create table to myrole;

    grant myrole to zhangsan;

    drop role myrole;

    grant unlimited tablespace to myrole;是不行的,该权限太大,不能分配给角色。

    有一些已经定义好的角色,如dba,resource

    SQL> grant resource to lisi;

    授权成功。

    SQL> revoke resource from lisi;

    撤销成功。

    11.密码丢了怎么办?

    普通用户,可以用sys登入修改密码

    alter user lisi identified by 123;

    12.数据库的三种验证机制:

    操作系统、密码文件、数据库验证。

    sys可以在数据库还没有启动的时候就能连接进入。sys的权限大到可以启动和关闭数据库。

    所以sys用户是使用前两种验证。

    拥有SYSOPER和SYSDBA这两个权限的用户是采用操作系统验证和文件系统验证的。

    原因是:

    启动Oracle时至少启动两个服务,监听服务和Oracle实例的服务。

    监听程序为数据库实例服务,这是在服务器端。

    当客户连接时,先连接监听,监听把请求发给数据库,验证通过后,不需要通过监听,客户端直接和数据库通信。

    在启动Oracle服务的过程中,Unix/Linux上应该先启动监听,任何用户都可以。紧接着是不能随便启动实例的,因为这需要一定权限。

    在linux下,输入如下命令

    lsnrctl start

    sqlplus sys/[密码] as sysdba; 此命令发给监听器,它看到是sysdba,就使用操作系统验证和密码文件验证后,若密码正确,然后使用start命令启动数据库。

    如果sys密码丢了,可以删除密码文件,让它重新生成一个。

    原有文件在F:\oracle\Tazi\product\11.2.0\dbhome_1\database下的Pwdorcl.ora删除前先备份,删除后

    orapwd回车后看帮助

    orapwd file=F:\oracle\Tazi\product\11.2.0\dbhome_1\database\Pwdorcl.ora password=123456 entries=10

    然后ok.

    去掉oracle的操作系统验证的方法,在

    F:\oracle\Tazi\product\11.2.0\dbhome_1\NETWORK\ADMIN\sqlnet.ora中加入

    SQLNET.AUTHENTICATION_SERVICES=(NONE)就好了。

    查看当前拥有sysdba这类最高权限的用户

    select * from v$pwfile_users;

    13.删除用户

    drop user lisi cascade;若lisi下没有什么资源,可以不用cascade

    14.其它命令

    start 脚本或者@ 脚本

    修改本用户密码passw 退出exit

    15.使用Profile管理用户

    默认情况下创建用户后Oracle把名为default的profile分配给用户.

    profile是一种规则,是口令限制,资源限制的集合。

    先创建profile文件:create profile [名称] limit failed_login_attempts [次数] password_lock_time [天数]

    修改用户的profile:alter user lisi profile [profile名称]

    SQL> create profile lock_account limit failed_login_attempts 3 password_lock_tim
    e 2;

    配置文件已创建

    SQL> alter user lisi profile lock_account;

    用户已更改。

    SQL> conn lisi/dd@orcl
    ERROR:
    ORA-01017: invalid username/password; logon denied


    SQL> conn lisi/dde@orcl
    ERROR:
    ORA-01017: invalid username/password; logon denied


    SQL> conn lisi/ee@orcl
    ERROR:
    ORA-01017: invalid username/password; logon denied


    SQL> conn lisi/er@orcl
    ERROR:
    ORA-28000: the account is locked


    SQL> conn lisi/lisi@orcl
    ERROR:
    ORA-28000: the account is locked

    16.解锁

    alter user lisi account unlock;

    17.终止口令和口令历史

    create profile myprofile limit password_life_time [到第几天开始警告 ]password_grace_time [宽限天数] password_reuse_time [几天后口令可以重用];

    18.删除profile

    SQL> drop profile myprofile cascade;

    配置文件已删除。

    19.插入日期型数据

    SQL> alter session set nls_date_format='yyyy-mm';

    会话已更改。

    SQL> insert into stu(sno,name,birthday) values(123,'tazi','2000-05');

    已创建 1 行。

    SQL> commit;

    提交完成。

    SQL>

    20.插入空值

    insert into stu(sno,name,birthday) values(124,'tazi2',null);

    21.保存点与回退

    SQL> savepoint a;

    保存点已创建。

    SQL> rollback to a;

    回退已完成。

    22.空值在算术表达式中的处理

    select sal*12+nvl(comm,0) "年工资",ename,sal,comm from emp;

    23.连接字符串:||




  • 相关阅读:
    在Ubuntu下编译WebKit源码--qt
    Ubuntu 编译Webkit --gtk
    windows远程桌面访问ubuntu12.04
    CentOS下SVN服务器的搭建使用
    Centos搭建SVN服务器三步曲
    StringRedisTemplate常用操作
    MySQL中DATETIME、DATE和TIMESTAMP类型的区别
    mysql 时间索引执行计划
    MySQL大文本类型
    API网关原理
  • 原文地址:https://www.cnblogs.com/tazi/p/2306605.html
Copyright © 2020-2023  润新知