Bo's Oracle Station

查看: 3586|回复: 4

课程第5次(2018-10-09星期二)

[复制链接]

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2018-10-9 21:55:37 | 显示全部楼层 |阅读模式

  1. select  * from dba_users;

  2. select  * from user$  where name='HR';

  3. create user user1 identified by oracle_4U;

  4. select  * from role_sys_privs  rsp
  5. where rsp.role='CONNECT';

  6. select  * from role_tab_privs  rtp
  7. where rtp.role='CONNECT';

  8.   select  * from role_role_privs  rrp
  9. where rrp.role='CONNECT';

  10. select  * from dba_sys_privs  sp
  11.   where sp.grantee='USER1';

  12. select  * from dba_tab_privs tp
  13.   where tp.grantee='USER1';

  14. select  * from dba_role_privs  rp
  15. where rp.grantee='USER1';

  16. grant connect to user1;

  17. grant create table to user1;

  18. select  * from dba_ts_quotas;

  19. alter user user1 quota 1M on users;

  20. alter user user1 quota 0 on users;
复制代码

  1. [root@station90 ~]# su - oracle
  2. [oracle@station90 ~]$ sqlplus /nolog

  3. SQL*Plus: Release 11.2.0.3.0 Production on Tue Oct 9 21:30:01 2018

  4. Copyright (c) 1982, 2011, Oracle.  All rights reserved.

  5. SQL> conn user1/oracle_4U
  6. ERROR:
  7. ORA-01045: user USER1 lacks CREATE SESSION privilege; logon denied


  8. SQL> conn user1/oracle_4U
  9. Connected.
  10. SQL> select  * from session_roles;

  11. ROLE
  12. ------------------------------
  13. CONNECT

  14. SQL> select  * from session_privs;

  15. PRIVILEGE
  16. ----------------------------------------
  17. CREATE SESSION

  18. SQL> select  * from user_tab_privs;

  19. no rows selected

  20. SQL> create table t05207_a ( a number ) ;
  21. create table t05207_a ( a number )
  22. *
  23. ERROR at line 1:
  24. ORA-01031: insufficient privileges


  25. SQL> select  * from session_privs;

  26. PRIVILEGE
  27. ----------------------------------------
  28. CREATE SESSION
  29. CREATE TABLE

  30. SQL> create table t05207_a ( a number ) ;

  31. Table created.

  32. SQL> insert into t05207_a values (1 ) ;
  33. insert into t05207_a values (1 )
  34.             *
  35. ERROR at line 1:
  36. ORA-01950: no privileges on tablespace 'USERS'


  37. SQL> insert into t05207_a values (1 ) ;

  38. 1 row created.

  39. SQL> commit;

  40. Commit complete.

  41. SQL> insert into t05207_a values (2) ;

  42. 1 row created.

  43. SQL> commit;

  44. Commit complete.

  45. SQL> begin
  46.   2   for i in 1..8000
  47.   3   loop
  48.   4     insert into t05207_a values (i);
  49.   5   end loop;
  50.   6   commit;
  51.   7  end;
  52.   8  /
  53. begin
  54. *
  55. ERROR at line 1:
  56. ORA-01536: space quota exceeded for tablespace 'USERS'
  57. ORA-06512: at line 4


  58. SQL> select  * from t05207_a;

  59.          A
  60. ----------
  61.          1
  62.          2

  63. SQL> begin
  64.   2   for i in 1..4000
  65.   3   loop
  66.   4     insert into t05207_a values (i);
  67.   5   end loop;
  68.   6   commit;
  69.   7  end;
  70.   8  /
  71. begin
  72. *
  73. ERROR at line 1:
  74. ORA-01536: space quota exceeded for tablespace 'USERS'
  75. ORA-06512: at line 4


  76. SQL> ed
  77. Wrote file afiedt.buf

  78.   1  begin
  79.   2   for i in 3..2000
  80.   3   loop
  81.   4        insert into t05207_a values (i);
  82.   5   end loop;
  83.   6   commit;
  84.   7* end;
  85. SQL> /

  86. PL/SQL procedure successfully completed.

  87. SQL>
复制代码





回复

使用道具 举报

1

主题

16

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
QQ
发表于 2018-10-11 17:13:24 | 显示全部楼层
为何ORACLE启动后(此时所有的操作都是直接在服务器上sqlplus /nolog进行的),后台会有很多LOCAL=NO的进程,kill掉之后,又产生,而且会增加到7个。这些进程是做什么用的?是如何产生的?

localno.png
回复 支持 反对

使用道具 举报

1

主题

16

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
QQ
发表于 2018-10-12 11:01:49 | 显示全部楼层
老师,您好,昨晚课上您说有些后台进程走的套接字,所以会产生LOCAL=NO的进程,自己尝试搜索了一遍,没找到这块资料,能再做些说明吗。哪些后台进程走的套接字,为什么不直接从服务器调用,而要走套接字。
回复 支持 反对

使用道具 举报

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
 楼主| 发表于 2018-10-12 11:22:02 | 显示全部楼层
jarlean 发表于 2018-10-12 11:01
老师,您好,昨晚课上您说有些后台进程走的套接字,所以会产生LOCAL=NO的进程,自己尝试搜索了一遍,没找到 ...

查看进程:
  1. SQL> conn / as sysdba
  2. Connected.
  3. SQL> !ps
  4.   PID TTY          TIME CMD
  5. 11359 pts/1    00:00:00 sqlplus
  6. 11556 pts/1    00:00:00 ps

  7. SQL> select  spid  from v$process p , v$session s
  8.   2   where p.addr=s.paddr
  9.   3   and s.terminal='pts/1';

  10. SPID
  11. ------------------------
  12. 11360

  13. SQL>
复制代码


[root@station90 桌面]# ps aux | grep 11360
oracle   11360  0.0  0.5 6792344 89448 ?       Ss   11:17   0:00 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
root     15315  0.0  0.0 103308  2092 pts/2    S+   11:18   0:00 grep 11360


直接在服务器上的会话,都使用socket链接,不是用listener+TNS的网络方式。

你这样两用户安装,是生产环境还是rac要说清楚,其他的进程细节,不必追究internal。
另,这样安装已经做不了书后练习了。
回复 支持 反对

使用道具 举报

1

主题

16

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
QQ
发表于 2018-10-12 12:00:00 | 显示全部楼层
嗯,好的,看到跟预期不一样的结果有点疑惑,所以就问问,不然容易憋出内伤。
是测试环境,单机环境,主要是单用户每次都要export SID有点烦人,所以搞了双用户,那我再搭一个单用户的环境来做书后练习。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-12-4 03:23 , Processed in 0.053193 second(s), 29 queries .

快速回复 返回顶部 返回列表