Advertisement
Guest User

Untitled

a guest
Apr 25th, 2016
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 69.37 KB | None | 0 0
  1. 1. Wyświetl informacje o bazie danych, do której się przyłączyłeś: nazwę, datę utworzenia oraz tryb
  2. otwarcia, wykorzystując perspektywę v$database. Sprawdź, jakie inne informacje można z niej
  3. wyciągnąć.
  4. SQL> desc v$database;
  5. Name Null? Type
  6. ----------------------------------------- -------- ----------------
  7. ------------
  8. DBID NUMBER
  9. NAME VARCHAR2(9)
  10. CREATED DATE
  11. RESETLOGS_CHANGE# NUMBER
  12. RESETLOGS_TIME DATE
  13. PRIOR_RESETLOGS_CHANGE# NUMBER
  14. PRIOR_RESETLOGS_TIME DATE
  15. LOG_MODE VARCHAR2(12)
  16. CHECKPOINT_CHANGE# NUMBER
  17. ARCHIVE_CHANGE# NUMBER
  18. CONTROLFILE_TYPE VARCHAR2(7)
  19. CONTROLFILE_CREATED DATE
  20. CONTROLFILE_SEQUENCE# NUMBER
  21. CONTROLFILE_CHANGE# NUMBER
  22. CONTROLFILE_TIME DATE
  23. OPEN_RESETLOGS VARCHAR2(11)
  24. VERSION_TIME DATE
  25. OPEN_MODE VARCHAR2(20)
  26. PROTECTION_MODE VARCHAR2(20)
  27. PROTECTION_LEVEL VARCHAR2(20)
  28. REMOTE_ARCHIVE VARCHAR2(8)
  29. ACTIVATION# NUMBER
  30. SWITCHOVER# NUMBER
  31. DATABASE_ROLE VARCHAR2(16)
  32. ARCHIVELOG_CHANGE# NUMBER
  33. ARCHIVELOG_COMPRESSION VARCHAR2(8)
  34. SWITCHOVER_STATUS VARCHAR2(20)
  35. DATAGUARD_BROKER VARCHAR2(8)
  36. GUARD_STATUS VARCHAR2(7)
  37. SUPPLEMENTAL_LOG_DATA_MIN VARCHAR2(8)
  38. SUPPLEMENTAL_LOG_DATA_PK VARCHAR2(3)
  39. SUPPLEMENTAL_LOG_DATA_UI VARCHAR2(3)
  40. FORCE_LOGGING VARCHAR2(3)
  41. PLATFORM_ID NUMBER
  42. PLATFORM_NAME VARCHAR2(101)
  43. RECOVERY_TARGET_INCARNATION# NUMBER
  44. LAST_OPEN_INCARNATION# NUMBER
  45. CURRENT_SCN NUMBER
  46. FLASHBACK_ON VARCHAR2(18)
  47. Mateusz Grzelak 180552
  48. SUPPLEMENTAL_LOG_DATA_FK VARCHAR2(3)
  49. SUPPLEMENTAL_LOG_DATA_ALL VARCHAR2(3)
  50. DB_UNIQUE_NAME VARCHAR2(30)
  51. STANDBY_BECAME_PRIMARY_SCN NUMBER
  52. FS_FAILOVER_STATUS VARCHAR2(22)
  53. FS_FAILOVER_CURRENT_TARGET VARCHAR2(30)
  54. FS_FAILOVER_THRESHOLD NUMBER
  55. FS_FAILOVER_OBSERVER_PRESENT VARCHAR2(7)
  56. FS_FAILOVER_OBSERVER_HOST VARCHAR2(512)
  57. CONTROLFILE_CONVERTED VARCHAR2(3)
  58. PRIMARY_DB_UNIQUE_NAME VARCHAR2(30)
  59. SUPPLEMENTAL_LOG_DATA_PL VARCHAR2(3)
  60. MIN_REQUIRED_CAPTURE_CHANGE# NUMBER
  61. 2. Sprawdź globalną nazwę bazy danych wykorzystując tabelę systemową global_name.
  62. SQL> select * from global_name;
  63. GLOBAL_NAME
  64. --------------------------------------------------------------------------------
  65. ORCL
  66. 3. Wyświetl informacje o nazwie instancji Twojej bazy danych wykorzystując perspektywę v$instance.
  67. SQL> select instance_name from v$instance;
  68. INSTANCE_NAME
  69. ----------------
  70. Orcl
  71. 4. Wyświetl informacje o wersji SZBD wykorzystując perspektywę v$version.
  72. SQL> select banner from v$version;
  73. BANNER
  74. --------------------------------------------------------------------
  75. ------------
  76. Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 -
  77. Production
  78. PL/SQL Release 11.2.0.2.0 - Production
  79. CORE 11.2.0.2.0 Production
  80. TNS for Linux: Version 11.2.0.2.0 - Production
  81. NLSRTL Version 11.2.0.2.0 - Production
  82. 5. Korzystając z dynamicznej perspektywy V$SGA, podaj bieżące ustawienia SGA ( w SQL*Plus można
  83. również użyć polecenia show SGA)
  84. SQL> show sga
  85. Mateusz Grzelak 180552
  86. Total System Global Area 456146944 bytes
  87. Fixed Size 1344840 bytes
  88. Variable Size 348129976 bytes
  89. Database Buffers 100663296 bytes
  90. Redo Buffers 6008832 bytes
  91. 6. Wyświetl informacje o przestrzeniach tabel w Twojej bazie danych oraz o lokalizacji plików danych
  92. przestrzeni tabel. Skorzystaj z tabel systemowychdba_tablespaces oraz dba_data_files oraz jako
  93. alternatywę dla tych tabel perspektywy v$tablespace i v$datafile.
  94. SQL> select file_name, tablespace_name, status from dba_data_files;
  95. FILE_NAME
  96. --------------------------------------------------------------------
  97. ------------
  98. TABLESPACE_NAME STATUS
  99. ------------------------------ ---------
  100. /home/oracle/app/oracle/oradata/orcl/users01.dbf
  101. USERS AVAILABLE
  102. /home/oracle/app/oracle/oradata/orcl/undotbs01.dbf
  103. UNDOTBS1 AVAILABLE
  104. /home/oracle/app/oracle/oradata/orcl/sysaux01.dbf
  105. SYSAUX AVAILABLE
  106. FILE_NAME
  107. --------------------------------------------------------------------
  108. ------------
  109. TABLESPACE_NAME STATUS
  110. ------------------------------ ---------
  111. /home/oracle/app/oracle/oradata/orcl/system01.dbf
  112. SYSTEM AVAILABLE
  113. /home/oracle/app/oracle/oradata/orcl/example01.dbf
  114. EXAMPLE AVAILABLE
  115. /home/oracle/app/oracle/oradata/orcl/APEX_1930613455248703.dbf
  116. APEX_1930613455248703 AVAILABLE
  117. FILE_NAME
  118. --------------------------------------------------------------------
  119. ------------
  120. TABLESPACE_NAME STATUS
  121. ------------------------------ ---------
  122. /home/oracle/app/oracle/oradata/orcl/APEX_2041602962184952.dbf
  123. APEX_2041602962184952 AVAILABLE
  124. /home/oracle/app/oracle/oradata/orcl/APEX_2610402357158758.dbf
  125. APEX_2610402357158758 AVAILABLE
  126. /home/oracle/app/oracle/oradata/orcl/APEX_2611417663389985.dbf
  127. APEX_2611417663389985 AVAILABLE
  128. FILE_NAME
  129. --------------------------------------------------------------------
  130. ------------
  131. TABLESPACE_NAME STATUS
  132. ------------------------------ ---------
  133. /home/oracle/app/oracle/oradata/orcl/APEX_2614203650434107.dbf
  134. APEX_2614203650434107 AVAILABLE
  135. 10 rows selected.
  136. Mateusz Grzelak 180552
  137. SQL> select tablespace_name, status from dba_tablespaces;
  138. TABLESPACE_NAME STATUS
  139. ------------------------------ ---------
  140. SYSTEM ONLINE
  141. SYSAUX ONLINE
  142. UNDOTBS1 ONLINE
  143. TEMP ONLINE
  144. USERS ONLINE
  145. EXAMPLE ONLINE
  146. APEX_1930613455248703 ONLINE
  147. APEX_2041602962184952 ONLINE
  148. APEX_2610402357158758 ONLINE
  149. APEX_2611417663389985 ONLINE
  150. APEX_2614203650434107 ONLINE
  151. 11 rows selected.
  152. SQL> select * from v$tablespace;
  153. TS# NAME INC BIG FLA ENC
  154. ---------- ------------------------------ --- --- --- ---
  155. 0 SYSTEM YES NO YES
  156. 1 SYSAUX YES NO YES
  157. 2 UNDOTBS1 YES NO YES
  158. 4 USERS YES NO YES
  159. 3 TEMP NO NO YES
  160. 6 EXAMPLE YES NO YES
  161. 28 APEX_1930613455248703 YES NO YES
  162. 29 APEX_2041602962184952 YES NO YES
  163. 30 APEX_2610402357158758 YES NO YES
  164. 31 APEX_2611417663389985 YES NO YES
  165. 32 APEX_2614203650434107 YES NO YES
  166. 11 rows selected.
  167. SQL> select name, status from v$datafile;
  168. NAME
  169. --------------------------------------------------------------------
  170. ------------
  171. STATUS
  172. -------
  173. /home/oracle/app/oracle/oradata/orcl/system01.dbf
  174. SYSTEM
  175. /home/oracle/app/oracle/oradata/orcl/sysaux01.dbf
  176. ONLINE
  177. /home/oracle/app/oracle/oradata/orcl/undotbs01.dbf
  178. ONLINE
  179. NAME
  180. --------------------------------------------------------------------
  181. ------------
  182. STATUS
  183. -------
  184. /home/oracle/app/oracle/oradata/orcl/users01.dbf
  185. ONLINE
  186. /home/oracle/app/oracle/oradata/orcl/example01.dbf
  187. Mateusz Grzelak 180552
  188. ONLINE
  189. /home/oracle/app/oracle/oradata/orcl/APEX_1930613455248703.dbf
  190. ONLINE
  191. NAME
  192. --------------------------------------------------------------------
  193. ------------
  194. STATUS
  195. -------
  196. /home/oracle/app/oracle/oradata/orcl/APEX_2041602962184952.dbf
  197. ONLINE
  198. /home/oracle/app/oracle/oradata/orcl/APEX_2610402357158758.dbf
  199. ONLINE
  200. /home/oracle/app/oracle/oradata/orcl/APEX_2611417663389985.dbf
  201. ONLINE
  202. NAME
  203. --------------------------------------------------------------------
  204. ------------
  205. STATUS
  206. -------
  207. /home/oracle/app/oracle/oradata/orcl/APEX_2614203650434107.dbf
  208. ONLINE
  209. /home/oracle/app/oracle/oradata/orcl/flowers_data.dbf
  210. ONLINE
  211. /home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/flowers_indx.dbf
  212. ONLINE
  213. 12 rows selected.
  214. 7. Wyświetl wolny obszar z każdej przestrzeni tabel wykorzystując perspektywę dba_free_space
  215. SQL> select tablespace_name, sum(bytes) from dba_free_space group by tablespace_name;
  216. TABLESPACE_NAME SUM(BYTES)
  217. ------------------------------ ----------
  218. SYSAUX 118685696
  219. UNDOTBS1 159121408
  220. APEX_2610402357158758 1048576
  221. USERS 46071808
  222. APEX_2611417663389985 1048576
  223. SYSTEM 196608
  224. EXAMPLE 11599872
  225. APEX_2614203650434107 720896
  226. APEX_1930613455248703 1048576
  227. APEX_2041602962184952 1048576
  228. 10 rows selected.
  229. 8. Korzystając z perspektywy DBA_SEGMENTS, wyświetl zajęte segmenty dla przestrzeni USERS,
  230. których właścicielem jest jeden z użytkowników (HR / SCOTT / inny).
  231. SQL> select segment_name from dba_segments where owner in ('HR','SCOTT');
  232. SEGMENT_NAME
  233. Mateusz Grzelak 180552
  234. --------------------------------------------------------------------------------
  235. DATA_STAGING_OTN
  236. DATA_STAGING_EVO
  237. DATA_STAGING_PTN
  238. DATA_STAGING_XQY
  239. DATA_STAGING_REPOS
  240. DEPT
  241. EMP
  242. SALGRADE
  243. STAT_TABLE
  244. REGIONS
  245. LOCATIONS
  246. SEGMENT_NAME
  247. --------------------------------------------------------------------------------
  248. DEPARTMENTS
  249. JOBS
  250. EMPLOYEES
  251. JOB_HISTORY
  252. SYS_IL0000101509C00003$$
  253. SYS_C0024634
  254. SYS_IL0000101594C00003$$
  255. SYS_C0024645
  256. SYS_IL0000101603C00003$$
  257. SYS_C0024647
  258. SYS_IL0000101607C00003$$
  259. SEGMENT_NAME
  260. --------------------------------------------------------------------------------
  261. SYS_C0024648
  262. SYS_IL0000101611C00002$$
  263. PK_DEPT
  264. PK_EMP
  265. SYS_IL0000082748C00026$$
  266. STAT_TABLE
  267. JHIST_JOB_IX
  268. JHIST_EMPLOYEE_IX
  269. JHIST_DEPARTMENT_IX
  270. LOC_CITY_IX
  271. LOC_STATE_PROVINCE_IX
  272. SEGMENT_NAME
  273. --------------------------------------------------------------------------------
  274. LOC_COUNTRY_IX
  275. REG_ID_PK
  276. Mateusz Grzelak 180552
  277. COUNTRY_C_ID_PK
  278. LOC_ID_PK
  279. DEPT_ID_PK
  280. JOB_ID_PK
  281. EMP_EMAIL_UK
  282. EMP_EMP_ID_PK
  283. JHIST_EMP_ID_ST_DATE_PK
  284. EMP_DEPARTMENT_IX
  285. EMP_JOB_IX
  286. SEGMENT_NAME
  287. --------------------------------------------------------------------------------
  288. EMP_MANAGER_IX
  289. EMP_NAME_IX
  290. DEPT_LOCATION_IX
  291. SYS_LOB0000101509C00003$$
  292. SYS_LOB0000101603C00003$$
  293. SYS_LOB0000101607C00003$$
  294. SYS_LOB0000101611C00002$$
  295. SYS_LOB0000101594C00003$$
  296. SYS_LOB0000082748C00026$$
  297. 53 rows selected.
  298. 9. Wyświetl informacje o lokalizacji plików kontrolnych Twojej bazy danych korzystając z
  299. perspektywy v$controlfile.
  300. SQL> select name from v$controlfile;
  301. NAME
  302. --------------------------------------------------------------------------------
  303. /home/oracle/app/oracle/oradata/orcl/control01.ctl
  304. /home/oracle/app/oracle/flash_recovery_area/orcl/control02.c
  305. 10. Podaj status i lokalizację plików dziennika powtórzeń korzystając z dynamicznych
  306. perspektyw V$LOG oraz V$LOGFILE.
  307. SQL> select v$log.status, v$logfile.member from v$log, v$logfile where
  308. v$log.group#=v$logfile.group#;
  309. STATUS
  310. ----------------
  311. MEMBER
  312. --------------------------------------------------------------------------------
  313. INACTIVE
  314. /home/oracle/app/oracle/oradata/orcl/redo03.log
  315. Mateusz Grzelak 180552
  316. INACTIVE
  317. /home/oracle/app/oracle/oradata/orcl/redo02.log
  318. CURRENT
  319. /home/oracle/app/oracle/oradata/orcl/redo01.log
  320. 11. Sprawdź rezultaty wykonania następujących poleceń:
  321. select a.TABLESPACE_NAME, a.BYTES bytes_used, b.BYTES bytes_free, b.largest, round(((a.BYTES-
  322. b.BYTES)/a.BYTES)*100,2) percent_used
  323. from (select TABLESPACE_NAME, sum(BYTES) BYTES from dba_data_files group by
  324. TABLESPACE_NAME) a,
  325. (select TABLESPACE_NAME, sum(BYTES) BYTES , max(BYTES) largest from dba_free_space group
  326. by TABLESPACE_NAME) b
  327. where a.TABLESPACE_NAME=b.TABLESPACE_NAME order by ((a.BYTES-b.BYTES)/a.BYTES) desc;
  328. TABLESPACE_NAME BYTES_USED BYTES_FREE LARGEST
  329. PERCENT_USED
  330. ------------------------------ ---------- ---------- ---------- ----
  331. --------
  332. SYSTEM 881852416 196608 196608
  333. 99.98
  334. SYSAUX 1320157184 118685696 5242880
  335. 91.01
  336. APEX_2614203650434107 7340032 720896 720896
  337. 90.18
  338. EXAMPLE 85983232 11599872 8192000
  339. 86.51
  340. USERS 235929600 46071808 37748736
  341. 80.47
  342. APEX_2041602962184952 2097152 1048576 1048576
  343. 50
  344. APEX_2610402357158758 2097152 1048576 1048576
  345. 50
  346. APEX_2611417663389985 2097152 1048576 1048576
  347. 50
  348. APEX_1930613455248703 2097152 1048576 1048576
  349. 50
  350. UNDOTBS1 178257920 158072832 76546048
  351. 11.32
  352. 10 rows selected.
  353. select OWNER, SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAME, BYTES
  354. from dba_segments where TABLESPACE_NAME = 'USERS' and OWNER LIKE 'STUDENT%' order by
  355. OWNER, SEGMENT_NAME;
  356. Mateusz Grzelak 180552
  357. no rows selected
  358. 12. Sprawdź, jacy użytkownicy są założeni w bazie oraz na jakim użytkowniku obecnie pracujesz.
  359. SQL> select username from dba_users;
  360. USERNAME
  361. ------------------------------
  362. SPATIAL_WFS_ADMIN_USR
  363. DIP
  364. IX
  365. MDDATA
  366. ORACLE_OCM
  367. SPATIAL_CSW_ADMIN_USR
  368. PM
  369. BI
  370. XS$NULL
  371. OLAPSYS
  372. OWBSYS
  373. USERNAME
  374. ------------------------------
  375. ORDPLUGINS
  376. OWBSYS_AUDIT
  377. APPQOSSYS
  378. EXFSYS
  379. ORDSYS
  380. SI_INFORMTN_SCHEMA
  381. CTXSYS
  382. ORDDATA
  383. APEX_040200
  384. WMSYS
  385. MDSYS
  386. USERNAME
  387. ------------------------------
  388. FLOWS_FILES
  389. OUTLN
  390. TIMESTEN
  391. XDBEXT
  392. XDBPM
  393. XDB
  394. ANONYMOUS
  395. Mateusz Grzelak 180552
  396. OBE
  397. CACHEADM
  398. HR_TRIG
  399. HR
  400. USERNAME
  401. ------------------------------
  402. SH
  403. DEMO
  404. HR1
  405. OE1
  406. TTHR
  407. APEX_REST_PUBLIC_USER
  408. APEX_PUBLIC_USER
  409. OE
  410. PLS
  411. APEX_LISTENER
  412. SCOTT
  413. USERNAME
  414. ------------------------------
  415. PHPDEMO
  416. XFILES
  417. SYSMAN
  418. SYSTEM
  419. SYS
  420. MGMT_VIEW
  421. DBSNMP
  422. 51 rows selected.
  423. SQL> select user from dual;
  424. USER
  425.  
  426.  
  427. --1
  428. [oracle@localhost ~]$ sqlplus
  429. Enter user-name: sys /as sysdba
  430.  
  431. --2
  432.  
  433. SQL> create user test_a identified by test
  434. 2 default tablespace users
  435. 3 quota 10M on users;
  436.  
  437. User created.
  438.  
  439.  
  440. SQL> create user test_b identified by test
  441. 2 default tablespace users
  442. 3 quota 10M on users;
  443.  
  444. User created.
  445.  
  446.  
  447. --3
  448.  
  449. SQL> grant connect, resource to test_a;
  450.  
  451. Grant succeeded.
  452.  
  453. SQL> grant connect, resource, restricted session to test_b;
  454.  
  455. Grant succeeded.
  456.  
  457.  
  458. --4
  459. test_a:
  460. Enter user-name: test_a
  461. Enter password:
  462.  
  463. Connected to:
  464. Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
  465. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  466.  
  467. SQL> create table test (tekst varchar2(100));
  468.  
  469. Table created.
  470.  
  471. SQL> insert into test values ('pierwszy rekord');
  472.  
  473. 1 row created.
  474.  
  475.  
  476. --5
  477. sys:
  478. SQL> shutdown transactional;
  479.  
  480.  
  481. Baza danych nie zosatje zamknięta z powodu nie zakończonej sesji pozostałych użytkowników. Aby zamknąć, użytkownik musi zrobić commit lub clawback.
  482.  
  483. --6
  484. tets_b:
  485. Enter user-name: test_b
  486. Enter password:
  487. ERROR:
  488. ORA-01089: immediate shutdown in progress - no operations are permitted
  489. Process ID: 0
  490. Session ID: 0 Serial number: 0
  491.  
  492. Połączenie z bazą jest niemożliwe z powodu polecenia shutdown transactional. Baza oczekuje na zakończenie transakcji użytkownika test_a.
  493.  
  494. --7
  495. tets_a:
  496. SQL> commit;
  497. Commit complete.
  498.  
  499. sys:
  500. Database closed.
  501. Database dismounted.
  502. ORACLE instance shut down.
  503.  
  504.  
  505. --8
  506. sys:
  507. SQL> startup
  508. ORACLE instance started.
  509.  
  510. Total System Global Area 456146944 bytes
  511. Fixed Size 1344840 bytes
  512. Variable Size 348129976 bytes
  513. Database Buffers 100663296 bytes
  514. Redo Buffers 6008832 bytes
  515. Database mounted.
  516. Database opened.
  517.  
  518.  
  519. tets_a:
  520. Enter user-name: test_a
  521. Enter password:
  522.  
  523. Connected to:
  524. Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
  525. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  526.  
  527. SQL> insert into test values ('drugi rekord');
  528.  
  529. 1 row created.
  530.  
  531. SQL> select * from test;
  532.  
  533. TEKST
  534. --------------------------------------------------------------------------------
  535. drugi rekord
  536. pierwszy rekord
  537.  
  538.  
  539. --9
  540. sys:
  541. SQL> shutdown immediate;
  542. Database closed.
  543. Database dismounted.
  544. ORACLE instance shut down.
  545.  
  546. test_a:
  547. Sesja użytkownika test_a została przerwana.
  548. ORA-03135: connection lost contact
  549.  
  550. Opcja immediate wycofuje wszystkie niezakończone transakcje i następuje natychmiastwoe zamknięcie.
  551.  
  552.  
  553. --10
  554. sys:
  555. SQL> startup
  556.  
  557. SQL> select * from test;
  558.  
  559. TEKST
  560. --------------------------------------------------------------------------------
  561. pierwszy rekord
  562.  
  563.  
  564. W bazie znajduje się jedynie pierwszy rekord.
  565.  
  566.  
  567. --11
  568. test_a:
  569. SQL> disconn
  570.  
  571. sys:
  572. SQL> shutdown transactional
  573. Database closed.
  574. Database dismounted.
  575. ORACLE instance shut down.
  576.  
  577.  
  578. --12
  579. sys:
  580. SQL> startup nomount
  581. ORACLE instance started.
  582.  
  583. Total System Global Area 456146944 bytes
  584. Fixed Size 1344840 bytes
  585. Variable Size 348129976 bytes
  586. Database Buffers 100663296 bytes
  587. Redo Buffers 6008832 bytes
  588.  
  589. Przyłącznie się do bazy jako użytkownik test_a było niemożliwe z powodu trybu NOMOUNT.
  590.  
  591.  
  592. --13
  593. sys:
  594. SQL> alter database mount;
  595.  
  596. Database altered.
  597.  
  598. Przyłącznie się do bazy jako użytkownik test_a było niemożliwe z powodu trybu MOUNT.
  599.  
  600. --14
  601. sys:
  602. SQL> alter database open;
  603.  
  604. Database altered.
  605.  
  606.  
  607. Przyłączenie do bazy jako użytkownik test_a było możliwe dzięki trybowi open.
  608.  
  609.  
  610. --15
  611. test_a:
  612. SQL> disconn
  613.  
  614. sys:
  615. SQL> alter system enable restricted session;
  616.  
  617. System altered.
  618.  
  619.  
  620. --16
  621. test_a:
  622. SQL> conn
  623. Enter user-name: test_a
  624. Enter password:
  625. ERROR:
  626. ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilege
  627.  
  628. test_b:
  629. Enter user-name: test_b
  630. Enter password:
  631.  
  632. Connected to:
  633. Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
  634. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  635.  
  636.  
  637. Użytkownik test_a nie może połączyć się z bazą. Użytkownik test_b może dzięki nadanemu mu wcześniej uprawnieniu "RESTRICTED SESSION"
  638.  
  639.  
  640. --17
  641. test_a:
  642. SQL> disconn
  643.  
  644. tets_b:
  645. SQL> disconn
  646.  
  647. sys:
  648. SQL> select username from dba_users;
  649.  
  650. USERNAME
  651. ------------------------------
  652. SPATIAL_WFS_ADMIN_USR
  653. (...)
  654.  
  655. USERNAME
  656. ------------------------------
  657. SH
  658. DEMO
  659. HR1
  660. OE1
  661. TTHR
  662. APEX_REST_PUBLIC_USER
  663. APEX_PUBLIC_USER
  664. OE
  665. TEST_A
  666. PLS
  667. TEST_B
  668.  
  669. USERNAME
  670. ------------------------------
  671. APEX_LISTENER
  672. (...)
  673.  
  674. 53 rows selected.
  675.  
  676.  
  677.  
  678. SQL> DROP USER TEST_A CASCADE;
  679.  
  680. User dropped.
  681.  
  682. SQL> DROP USER TEST_B CASCADE;
  683.  
  684. User dropped.
  685.  
  686.  
  687. SQL> select username from dba_users;
  688.  
  689. USERNAME
  690. ------------------------------
  691. SPATIAL_WFS_ADMIN_USR
  692. DIP
  693. IX
  694. MDDATA
  695. ORACLE_OCM
  696. SPATIAL_CSW_ADMIN_USR
  697. PM
  698. BI
  699. XS$NULL
  700. OLAPSYS
  701. OWBSYS
  702.  
  703. USERNAME
  704. ------------------------------
  705. ORDPLUGINS
  706. OWBSYS_AUDIT
  707. APPQOSSYS
  708. EXFSYS
  709. ORDSYS
  710. SI_INFORMTN_SCHEMA
  711. CTXSYS
  712. ORDDATA
  713. APEX_040200
  714. WMSYS
  715. MDSYS
  716.  
  717. USERNAME
  718. ------------------------------
  719. FLOWS_FILES
  720. OUTLN
  721. TIMESTEN
  722. XDBEXT
  723. XDBPM
  724. XDB
  725. ANONYMOUS
  726. OBE
  727. CACHEADM
  728. HR_TRIG
  729. HR
  730.  
  731. USERNAME
  732. ------------------------------
  733. SH
  734. DEMO
  735. HR1
  736. OE1
  737. TTHR
  738. APEX_REST_PUBLIC_USER
  739. APEX_PUBLIC_USER
  740. OE
  741. PLS
  742. APEX_LISTENER
  743. SCOTT
  744.  
  745. USERNAME
  746. ------------------------------
  747. PHPDEMO
  748. XFILES
  749. SYSMAN
  750. SYSTEM
  751. SYS
  752. MGMT_VIEW
  753. DBSNMP
  754.  
  755. 51 rows selected.
  756.  
  757.  
  758. 1. Przyłączyć się do bazy danych jako administrator.
  759.  
  760. [oracle@localhost ~]$ sqlplus
  761.  
  762. SQL*Plus: Release 11.2.0.2.0 Production on Mon Mar 23 00:56:48 2015
  763.  
  764. Copyright (c) 1982, 2010, Oracle. All rights reserved.
  765.  
  766. Enter user-name: sys /as sysdba
  767. Enter password:
  768.  
  769. Connected to:
  770. Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
  771. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  772.  
  773. Polecenia należy wykonywać z za pomocą SQL*Plus
  774.  
  775.  
  776. 2. Wyświetlić następujące informacje o wszystkich użytkownikach bazy:
  777.  
  778. nazwę użytkownika,
  779. hasło (w postaci zakodowanej),
  780. datę utworzenia użytkownika,
  781. nazwę domyślnej przestrzeni tabel,
  782. nazwę tymczasowej przestrzeni tabel,
  783. status użytkownika,
  784. nazwę profilu, który przydzielono użytkownikowi.
  785.  
  786. SQL> select username, password, created, default_tablespace, temporary_tablespace, account_status, profile from dba_users;
  787.  
  788. USERNAME PASSWORD CREATED
  789. ------------------------------ ------------------------------ ---------
  790. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  791. ------------------------------ ------------------------------
  792. ACCOUNT_STATUS PROFILE
  793. -------------------------------- ------------------------------
  794. SPATIAL_WFS_ADMIN_USR 13-AUG-09
  795. USERS TEMP
  796. EXPIRED & LOCKED DEFAULT
  797.  
  798. DIP 13-AUG-09
  799. USERS TEMP
  800. EXPIRED & LOCKED DEFAULT
  801.  
  802. USERNAME PASSWORD CREATED
  803. ------------------------------ ------------------------------ ---------
  804. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  805. ------------------------------ ------------------------------
  806. ACCOUNT_STATUS PROFILE
  807. -------------------------------- ------------------------------
  808.  
  809. IX 30-OCT-09
  810. USERS TEMP
  811. EXPIRED & LOCKED DEFAULT
  812.  
  813. MDDATA 13-AUG-09
  814. USERS TEMP
  815.  
  816. USERNAME PASSWORD CREATED
  817. ------------------------------ ------------------------------ ---------
  818. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  819. ------------------------------ ------------------------------
  820. ACCOUNT_STATUS PROFILE
  821. -------------------------------- ------------------------------
  822. EXPIRED & LOCKED DEFAULT
  823.  
  824. ORACLE_OCM 13-AUG-09
  825. USERS TEMP
  826. EXPIRED & LOCKED DEFAULT
  827.  
  828. SPATIAL_CSW_ADMIN_USR 13-AUG-09
  829.  
  830. USERNAME PASSWORD CREATED
  831. ------------------------------ ------------------------------ ---------
  832. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  833. ------------------------------ ------------------------------
  834. ACCOUNT_STATUS PROFILE
  835. -------------------------------- ------------------------------
  836. USERS TEMP
  837. EXPIRED & LOCKED DEFAULT
  838.  
  839. PM 30-OCT-09
  840. USERS TEMP
  841. EXPIRED & LOCKED DEFAULT
  842.  
  843.  
  844. USERNAME PASSWORD CREATED
  845. ------------------------------ ------------------------------ ---------
  846. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  847. ------------------------------ ------------------------------
  848. ACCOUNT_STATUS PROFILE
  849. -------------------------------- ------------------------------
  850. BI 30-OCT-09
  851. USERS TEMP
  852. EXPIRED & LOCKED DEFAULT
  853.  
  854. XS$NULL 13-AUG-09
  855. USERS TEMP
  856. EXPIRED & LOCKED DEFAULT
  857.  
  858. USERNAME PASSWORD CREATED
  859. ------------------------------ ------------------------------ ---------
  860. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  861. ------------------------------ ------------------------------
  862. ACCOUNT_STATUS PROFILE
  863. -------------------------------- ------------------------------
  864.  
  865. OLAPSYS 13-AUG-09
  866. SYSAUX TEMP
  867. EXPIRED & LOCKED DEFAULT
  868.  
  869. OWBSYS 13-AUG-09
  870. SYSAUX TEMP
  871.  
  872. USERNAME PASSWORD CREATED
  873. ------------------------------ ------------------------------ ---------
  874. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  875. ------------------------------ ------------------------------
  876. ACCOUNT_STATUS PROFILE
  877. -------------------------------- ------------------------------
  878. EXPIRED & LOCKED DEFAULT
  879.  
  880. ORDPLUGINS 13-AUG-09
  881. SYSAUX TEMP
  882. EXPIRED & LOCKED DEFAULT
  883.  
  884. OWBSYS_AUDIT 13-AUG-09
  885.  
  886. USERNAME PASSWORD CREATED
  887. ------------------------------ ------------------------------ ---------
  888. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  889. ------------------------------ ------------------------------
  890. ACCOUNT_STATUS PROFILE
  891. -------------------------------- ------------------------------
  892. SYSAUX TEMP
  893. EXPIRED & LOCKED DEFAULT
  894.  
  895. APPQOSSYS 13-AUG-09
  896. SYSAUX TEMP
  897. EXPIRED & LOCKED DEFAULT
  898.  
  899.  
  900. USERNAME PASSWORD CREATED
  901. ------------------------------ ------------------------------ ---------
  902. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  903. ------------------------------ ------------------------------
  904. ACCOUNT_STATUS PROFILE
  905. -------------------------------- ------------------------------
  906. EXFSYS 13-AUG-09
  907. SYSAUX TEMP
  908. EXPIRED & LOCKED DEFAULT
  909.  
  910. ORDSYS 13-AUG-09
  911. SYSAUX TEMP
  912. EXPIRED & LOCKED DEFAULT
  913.  
  914. USERNAME PASSWORD CREATED
  915. ------------------------------ ------------------------------ ---------
  916. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  917. ------------------------------ ------------------------------
  918. ACCOUNT_STATUS PROFILE
  919. -------------------------------- ------------------------------
  920.  
  921. SI_INFORMTN_SCHEMA 13-AUG-09
  922. SYSAUX TEMP
  923. EXPIRED & LOCKED DEFAULT
  924.  
  925. CTXSYS 13-AUG-09
  926. SYSAUX TEMP
  927.  
  928. USERNAME PASSWORD CREATED
  929. ------------------------------ ------------------------------ ---------
  930. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  931. ------------------------------ ------------------------------
  932. ACCOUNT_STATUS PROFILE
  933. -------------------------------- ------------------------------
  934. EXPIRED & LOCKED DEFAULT
  935.  
  936. ORDDATA 13-AUG-09
  937. SYSAUX TEMP
  938. EXPIRED & LOCKED DEFAULT
  939.  
  940. APEX_040200 29-NOV-12
  941.  
  942. USERNAME PASSWORD CREATED
  943. ------------------------------ ------------------------------ ---------
  944. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  945. ------------------------------ ------------------------------
  946. ACCOUNT_STATUS PROFILE
  947. -------------------------------- ------------------------------
  948. SYSAUX TEMP
  949. EXPIRED & LOCKED DEFAULT
  950.  
  951. WMSYS 13-AUG-09
  952. SYSAUX TEMP
  953. EXPIRED & LOCKED DEFAULT
  954.  
  955.  
  956. USERNAME PASSWORD CREATED
  957. ------------------------------ ------------------------------ ---------
  958. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  959. ------------------------------ ------------------------------
  960. ACCOUNT_STATUS PROFILE
  961. -------------------------------- ------------------------------
  962. MDSYS 13-AUG-09
  963. SYSAUX TEMP
  964. EXPIRED & LOCKED DEFAULT
  965.  
  966. FLOWS_FILES 07-FEB-11
  967. SYSAUX TEMP
  968. EXPIRED & LOCKED DEFAULT
  969.  
  970. USERNAME PASSWORD CREATED
  971. ------------------------------ ------------------------------ ---------
  972. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  973. ------------------------------ ------------------------------
  974. ACCOUNT_STATUS PROFILE
  975. -------------------------------- ------------------------------
  976.  
  977. OUTLN 13-AUG-09
  978. SYSTEM TEMP
  979. EXPIRED & LOCKED DEFAULT
  980.  
  981. TIMESTEN 23-MAY-12
  982. USERS TEMP
  983.  
  984. USERNAME PASSWORD CREATED
  985. ------------------------------ ------------------------------ ---------
  986. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  987. ------------------------------ ------------------------------
  988. ACCOUNT_STATUS PROFILE
  989. -------------------------------- ------------------------------
  990. LOCKED DEFAULT
  991.  
  992. XDBEXT 20-OCT-11
  993. USERS TEMP
  994. LOCKED DEFAULT
  995.  
  996. XDBPM 20-OCT-11
  997.  
  998. USERNAME PASSWORD CREATED
  999. ------------------------------ ------------------------------ ---------
  1000. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  1001. ------------------------------ ------------------------------
  1002. ACCOUNT_STATUS PROFILE
  1003. -------------------------------- ------------------------------
  1004. USERS TEMP
  1005. LOCKED DEFAULT
  1006.  
  1007. XDB 13-AUG-09
  1008. SYSAUX TEMP
  1009. LOCKED DEFAULT
  1010.  
  1011.  
  1012. USERNAME PASSWORD CREATED
  1013. ------------------------------ ------------------------------ ---------
  1014. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  1015. ------------------------------ ------------------------------
  1016. ACCOUNT_STATUS PROFILE
  1017. -------------------------------- ------------------------------
  1018. ANONYMOUS 13-AUG-09
  1019. SYSAUX TEMP
  1020. EXPIRED DEFAULT
  1021.  
  1022. OBE 29-NOV-12
  1023. APEX_2614203650434107 TEMP
  1024. OPEN DEFAULT
  1025.  
  1026. USERNAME PASSWORD CREATED
  1027. ------------------------------ ------------------------------ ---------
  1028. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  1029. ------------------------------ ------------------------------
  1030. ACCOUNT_STATUS PROFILE
  1031. -------------------------------- ------------------------------
  1032.  
  1033. CACHEADM 23-MAY-12
  1034. USERS TEMP
  1035. OPEN DEFAULT
  1036.  
  1037. HR_TRIG 25-MAY-11
  1038. USERS TEMP
  1039.  
  1040. USERNAME PASSWORD CREATED
  1041. ------------------------------ ------------------------------ ---------
  1042. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  1043. ------------------------------ ------------------------------
  1044. ACCOUNT_STATUS PROFILE
  1045. -------------------------------- ------------------------------
  1046. OPEN DEFAULT
  1047.  
  1048. HR 23-FEB-11
  1049. USERS TEMP
  1050. OPEN DEFAULT
  1051.  
  1052. SH 30-OCT-09
  1053.  
  1054. USERNAME PASSWORD CREATED
  1055. ------------------------------ ------------------------------ ---------
  1056. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  1057. ------------------------------ ------------------------------
  1058. ACCOUNT_STATUS PROFILE
  1059. -------------------------------- ------------------------------
  1060. USERS TEMP
  1061. OPEN DEFAULT
  1062.  
  1063. DEMO 30-OCT-09
  1064. USERS TEMP
  1065. OPEN DEFAULT
  1066.  
  1067.  
  1068. USERNAME PASSWORD CREATED
  1069. ------------------------------ ------------------------------ ---------
  1070. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  1071. ------------------------------ ------------------------------
  1072. ACCOUNT_STATUS PROFILE
  1073. -------------------------------- ------------------------------
  1074. HR1 02-FEB-10
  1075. USERS TEMP
  1076. OPEN DEFAULT
  1077.  
  1078. OE1 02-FEB-10
  1079. USERS TEMP
  1080. OPEN DEFAULT
  1081.  
  1082. USERNAME PASSWORD CREATED
  1083. ------------------------------ ------------------------------ ---------
  1084. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  1085. ------------------------------ ------------------------------
  1086. ACCOUNT_STATUS PROFILE
  1087. -------------------------------- ------------------------------
  1088.  
  1089. TTHR 23-MAY-12
  1090. USERS TEMP
  1091. OPEN DEFAULT
  1092.  
  1093. APEX_REST_PUBLIC_USER 29-NOV-12
  1094. USERS TEMP
  1095.  
  1096. USERNAME PASSWORD CREATED
  1097. ------------------------------ ------------------------------ ---------
  1098. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  1099. ------------------------------ ------------------------------
  1100. ACCOUNT_STATUS PROFILE
  1101. -------------------------------- ------------------------------
  1102. OPEN DEFAULT
  1103.  
  1104. APEX_PUBLIC_USER 07-FEB-11
  1105. USERS TEMP
  1106. OPEN DEFAULT
  1107.  
  1108. OE 16-FEB-11
  1109.  
  1110. USERNAME PASSWORD CREATED
  1111. ------------------------------ ------------------------------ ---------
  1112. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  1113. ------------------------------ ------------------------------
  1114. ACCOUNT_STATUS PROFILE
  1115. -------------------------------- ------------------------------
  1116. USERS TEMP
  1117. OPEN DEFAULT
  1118.  
  1119. PLS 23-MAY-12
  1120. USERS TEMP
  1121. OPEN DEFAULT
  1122.  
  1123.  
  1124. USERNAME PASSWORD CREATED
  1125. ------------------------------ ------------------------------ ---------
  1126. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  1127. ------------------------------ ------------------------------
  1128. ACCOUNT_STATUS PROFILE
  1129. -------------------------------- ------------------------------
  1130. APEX_LISTENER 29-NOV-12
  1131. USERS TEMP
  1132. OPEN DEFAULT
  1133.  
  1134. SCOTT 13-AUG-09
  1135. USERS TEMP
  1136. OPEN DEFAULT
  1137.  
  1138. USERNAME PASSWORD CREATED
  1139. ------------------------------ ------------------------------ ---------
  1140. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  1141. ------------------------------ ------------------------------
  1142. ACCOUNT_STATUS PROFILE
  1143. -------------------------------- ------------------------------
  1144.  
  1145. PHPDEMO 25-MAY-11
  1146. USERS TEMP
  1147. OPEN DEFAULT
  1148.  
  1149. XFILES 04-OCT-10
  1150. USERS TEMP
  1151.  
  1152. USERNAME PASSWORD CREATED
  1153. ------------------------------ ------------------------------ ---------
  1154. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  1155. ------------------------------ ------------------------------
  1156. ACCOUNT_STATUS PROFILE
  1157. -------------------------------- ------------------------------
  1158. OPEN DEFAULT
  1159.  
  1160. SYSMAN 13-AUG-09
  1161. SYSAUX TEMP
  1162. OPEN DEFAULT
  1163.  
  1164. SYSTEM 13-AUG-09
  1165.  
  1166. USERNAME PASSWORD CREATED
  1167. ------------------------------ ------------------------------ ---------
  1168. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  1169. ------------------------------ ------------------------------
  1170. ACCOUNT_STATUS PROFILE
  1171. -------------------------------- ------------------------------
  1172. SYSTEM TEMP
  1173. OPEN DEFAULT
  1174.  
  1175. SYS 13-AUG-09
  1176. SYSTEM TEMP
  1177. OPEN DEFAULT
  1178.  
  1179.  
  1180. USERNAME PASSWORD CREATED
  1181. ------------------------------ ------------------------------ ---------
  1182. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  1183. ------------------------------ ------------------------------
  1184. ACCOUNT_STATUS PROFILE
  1185. -------------------------------- ------------------------------
  1186. MGMT_VIEW 13-AUG-09
  1187. SYSTEM TEMP
  1188. OPEN DEFAULT
  1189.  
  1190. DBSNMP 13-AUG-09
  1191. SYSAUX TEMP
  1192. OPEN MONITORING_PROFILE
  1193.  
  1194. USERNAME PASSWORD CREATED
  1195. ------------------------------ ------------------------------ ---------
  1196. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  1197. ------------------------------ ------------------------------
  1198. ACCOUNT_STATUS PROFILE
  1199. -------------------------------- ------------------------------
  1200.  
  1201.  
  1202. 51 rows selected.
  1203.  
  1204.  
  1205.  
  1206.  
  1207. 3. Utworzyć dwóch nowych użytkowników o następujących parametrach:
  1208.  
  1209. nazwa użytkownika: uzytk_1 | hasło: test_uzytk_1 | domyślna przestrzeń tabel: users | tymczasowa przestrzeń tabel: temp | profil: default
  1210.  
  1211. nazwa użytkownika: uzytk_2 | hasło: test_uzytk_2 | domyślna przestrzeń tabel: users | tymczasowa przestrzeń tabel: temp | profil: default.
  1212.  
  1213.  
  1214. SQL> create user uzytk_1 identified by test_uzytk_1 default tablespace users temporary tablespace temp profile default;
  1215.  
  1216. User created.
  1217.  
  1218. SQL> create user uzytk_2 identified by test_uzytk_2 default tablespace users temporary tablespace temp profile default;
  1219.  
  1220. User created.
  1221.  
  1222.  
  1223.  
  1224.  
  1225. 4. Sprawdzić, jakie ograniczenia na użycie miejsca w przestrzeniach tabel mają obaj użytkownicy (Podpowiedź: Widok dba_ts_quotas zawiera informacje o ograniczeniach, czyli jeśli nie ma tam wpisu dotyczącego określonego użytkownika, oznacza to, że użytkownik ten nie ma nałożonych ograniczeń). Następnie zdefiniować dla nich następujące ograniczenia: dla przestrzeni SYSTEM: 10M, dla przestrzeni USERS: 50M.
  1226.  
  1227. SQL> select * from dba_ts_quotas where username='uzytk_1' or username='uzytk_2';
  1228.  
  1229. no rows selected
  1230.  
  1231. Użytkownicy nie mają ograniczeń.
  1232.  
  1233.  
  1234. SQL> alter user uzytk_1 quota 10M on system quota 50M on users;
  1235.  
  1236. User altered.
  1237.  
  1238. SQL> alter user uzytk_2 quota 10M on system quota 50M on users;
  1239.  
  1240. User altered.
  1241.  
  1242.  
  1243.  
  1244. 5. Uruchomić w drugim oknie Sql*Plus i spróbować przyłączyć się do bazy danych jako użytkownik uzytk_1.
  1245.  
  1246. [oracle@localhost ~]$ sqlplus
  1247.  
  1248. SQL*Plus: Release 11.2.0.2.0 Production on Mon Mar 23 01:13:22 2015
  1249.  
  1250. Copyright (c) 1982, 2010, Oracle. All rights reserved.
  1251.  
  1252. Enter user-name: uzytk_1
  1253. Enter password:
  1254. ERROR:
  1255. ORA-01045: user UZYTK_1 lacks CREATE SESSION privilege; logon denied
  1256.  
  1257.  
  1258.  
  1259. 6. Z okna administratora wydać polecenie umożliwiające użytkownikowi uzytk_1 przyłączenie się do bazy danych.
  1260.  
  1261. SQL> grant connect to uzytk_1;
  1262.  
  1263. Grant succeeded.
  1264.  
  1265.  
  1266.  
  1267. 7. Ponownie spróbować przyłączyć się do bazy jako uzytk_1.
  1268.  
  1269. Enter user-name: uzytk_1
  1270. Enter password:
  1271.  
  1272. Connected to:
  1273. Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
  1274. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  1275.  
  1276.  
  1277.  
  1278. 8. Ten sam przywilej nadać również użytkownikowi uzytk_2.
  1279.  
  1280. SQL> grant connect to uzytk_2;
  1281.  
  1282. Grant succeeded.
  1283.  
  1284.  
  1285.  
  1286. 9. Jako użytk_1 spróbować utworzyć tabelę test o następującym schemacie: Id number(4), Nazwa varchar2(100)
  1287.  
  1288. SQL> create table test(
  1289. 2 Id number(4),
  1290. 3 Nazwa varchar2(100));
  1291. create table test(
  1292. *
  1293. ERROR at line 1:
  1294. ORA-01031: insufficient privileges
  1295.  
  1296.  
  1297.  
  1298. 10. Sprawdzić w odpowiednich widokach słownika danych, jakie przywileje obiektowe i systemowe posiada użytkownik uzytk_1. Podpowiedź: dba_role_privs | dba_sys_privs | dba_tab_privs
  1299.  
  1300. SQL> select * from dba_role_privs where grantee='uzytk_1';
  1301.  
  1302. no rows selected
  1303.  
  1304.  
  1305. SQL> select * from dba_sys_privs where grantee='uzytk_1';
  1306.  
  1307. no rows selected
  1308.  
  1309.  
  1310. SQL> select * from dba_tab_privs where grantee='uzytk_1';
  1311.  
  1312. no rows selected
  1313.  
  1314.  
  1315.  
  1316. 11. Jako administrator (konsola administracyjna) nadać użytkownikowi uzytk_1 odpowiedni przywilej systemowy i spróbować ponownie z konsoli tego użytkownika utworzyć tabelę test.
  1317.  
  1318. sys:
  1319. SQL> grant resource to uzytk_1;
  1320.  
  1321. Grant succeeded.
  1322.  
  1323. uzytk_1:
  1324.  
  1325. SQL> create table test(Id number(4), Nazwa varchar2(100));
  1326.  
  1327. Table created.
  1328.  
  1329. Bezpieczniejsze byłoby nadanie uprawnień tylko do tworzenia tabeli, czyli: grant create table to uzytk_1;
  1330.  
  1331.  
  1332.  
  1333. 12. Jako użytkownik uzytk_1 spróbować wstawić do tabeli test dwa rekordy o wartościach: {1, pierwszy rekord} i {2, drugi rekord}. Zatwierdzić wprowadzone dane.
  1334.  
  1335. SQL> insert into test(Id, Nazwa) values (1, 'pierwszy rekord');
  1336.  
  1337. 1 row created.
  1338.  
  1339. SQL> insert into test(Id, Nazwa) values (2, 'drugi rekord');
  1340.  
  1341. 1 row created.
  1342.  
  1343. SQL> commit;
  1344.  
  1345. Commit complete.
  1346.  
  1347.  
  1348.  
  1349. 13. W trzecim oknie przyłączyć się do bazy jako użytkownik uzytk_2 i spróbować odczytać wszystkie rekordy tabeli test użytkownika uzytk_1.
  1350.  
  1351. Enter user-name: uzytk_2
  1352. Enter password:
  1353.  
  1354. Connected to:
  1355. Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
  1356. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  1357.  
  1358.  
  1359. SQL> select * from uzytk_1.test;
  1360. select * from uzytk_1.test
  1361. *
  1362. ERROR at line 1:
  1363. ORA-00942: table or view does not exist
  1364.  
  1365.  
  1366.  
  1367. 14. Jako użytkownik uzytk_1 wydać polecenie umożliwiające użytkownikowi uzytk_2 wykonać poprzednią operację.
  1368.  
  1369. uzytk_1:
  1370. SQL> grant select on test to uzytk_2;
  1371.  
  1372. Grant succeeded.
  1373.  
  1374.  
  1375. uzytk_2:
  1376. SQL> select * from uzytk_1.test;
  1377.  
  1378. ID
  1379. ----------
  1380. NAZWA
  1381. --------------------------------------------------------------------------------
  1382. 1
  1383. pierwszy rekord
  1384.  
  1385. 2
  1386. drugi rekord
  1387.  
  1388.  
  1389.  
  1390.  
  1391. 15. Jako użytkownik uzytk_1 nadać użytkownikowi uzytk_2 możliwość dodawania rekordów do tabeli test w schemacie użytkownika uzytk_1. Przywilej ma być nadany z opcją administracyjną (możliwość dalszego przekazania przywileju). Sprawdzić działanie poprzez wstawienie jako użytkownik uzytk_2 kolejnego rekordu {3, trzeci rekord} do tabeli test.
  1392.  
  1393. uzytk_1:
  1394. SQL> grant insert on test to uzytk_2 with grant option;
  1395.  
  1396. Grant succeeded
  1397.  
  1398. uzytk_2:
  1399. SQL> insert into uzytk_1.test (Id, Nazwa) values (3, 'trzeci rekord');
  1400.  
  1401. 1 row created.
  1402.  
  1403.  
  1404.  
  1405.  
  1406. 16. Jako uzytk_2 przekazać poprzedni przywilej nowemu użytkownikowi test_a (ma już prawa do podłączenia się do bazy i tworzenia podstawowych zasobów), jednak bez opcji administracyjnej.
  1407.  
  1408. sys:
  1409. SQL> create user test_a identified by test default tablespace users quota 10M on users;
  1410.  
  1411. User created.
  1412.  
  1413. SQL> grant connect, resource to test_a;
  1414.  
  1415. Grant succeeded.
  1416.  
  1417.  
  1418. uzytk_2:
  1419. SQL> grant insert on uzytk_1.test to test_a;
  1420.  
  1421. Grant succeeded.
  1422.  
  1423.  
  1424.  
  1425. 17. W czwartym oknie przyłączyć się do bazy jako użytkownik test_a i spróbować wstawić do tabeli test kolejny rekord {4, czwarty rekord}.
  1426.  
  1427. Enter user-name: test_a
  1428. Enter password:
  1429.  
  1430. Connected to:
  1431. Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
  1432. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  1433.  
  1434. SQL> insert into uzytk_1.test (Id, Nazwa) values (4, 'czwarty rekord');
  1435.  
  1436. 1 row created.
  1437.  
  1438.  
  1439.  
  1440. 18. Jako administrator wyświetlić informacje o wszystkich przywilejach (zarówno systemowych jak i obiektowych), posiadanych przez użytkowników: uzytk_1, uzytk_2 i test_a.
  1441.  
  1442. SQL> select * from dba_role_privs where grantee='uzytk_1' or grantee='uzytk_2' or grantee='test_a';
  1443.  
  1444. no rows selected
  1445.  
  1446. SQL> select * from dba_sys_privs where grantee='uzytk_1' or grantee='uzytk_2' or grantee='test_a';
  1447.  
  1448. no rows selected
  1449.  
  1450. SQL> select * from dba_tab_privs where grantee='uzytk_1' or grantee='uzytk_2' or grantee='test_a';
  1451.  
  1452. no rows selected
  1453.  
  1454.  
  1455.  
  1456. 19. Jako użytkownik uzytk_1 odebrać użytkownikowi uzytk_2 prawo wstawiania rekordów do tabeli test. Sprawdzić, czy użytkownik uzytk_2 może jeszcze wstawiać rekordy do tabeli test. Sprawdzić, czy użytkownik test_a zachował prawo wstawiania rekordów do tabeli test.
  1457.  
  1458. uzytk_1:
  1459. SQL> revoke insert on test from uzytk_2;
  1460.  
  1461. Revoke succeeded.
  1462.  
  1463.  
  1464. uzytk_2:
  1465. SQL> insert into uzytk_1.test (Id, Nazwa) values (5, 'piaty rekord');
  1466. insert into uzytk_1.test (Id, Nazwa) values (5, 'piaty rekord')
  1467. *
  1468. ERROR at line 1:
  1469. ORA-01031: insufficient privileges
  1470.  
  1471.  
  1472. test_a:
  1473. SQL> insert into uzytk_1.test (Id, Nazwa) values (5, 'piaty rekord');
  1474. insert into uzytk_1.test (Id, Nazwa) values (5, 'piaty rekord')
  1475. *
  1476. ERROR at line 1:
  1477. ORA-00942: table or view does not exist
  1478.  
  1479.  
  1480.  
  1481.  
  1482. 20. Jako użytkownik uzytk_1 odebrać użytkownikowi uzytk_2 wszystkie prawa do tabeli test (jednym poleceniem).
  1483.  
  1484. SQL> revoke all on test from uzytk_2;
  1485.  
  1486. Revoke succeeded.
  1487.  
  1488.  
  1489.  
  1490. 21. Jako administrator nadać użytkownikowi uzytk_1 prawo tworzenia ról.
  1491.  
  1492. SQL> grant create role to uzytk_1;
  1493.  
  1494. Grant succeeded.
  1495.  
  1496.  
  1497.  
  1498. 22. Jako użytkownik uzytk_1 utworzyć rolę o następujących własnościach:
  1499.  
  1500. nazwa roli: zmiana_danych | przywileje w roli: odczytywanie, wstawianie, usuwanie i modyfikowanie danych tabeli test.
  1501.  
  1502. SQL> create role zmiana_danych;
  1503.  
  1504. Role created.
  1505.  
  1506. SQL> grant select, insert, delete, alter on test to zmiana_danych;
  1507.  
  1508. Grant succeeded.
  1509.  
  1510.  
  1511.  
  1512. 23. Nadać rolę użytkownikowi uzytk_2.
  1513.  
  1514. SQL> grant zmiana_danych to uzytk_2;
  1515.  
  1516. Grant succeeded.
  1517.  
  1518.  
  1519.  
  1520. 24. Sprawdzić w oknie użytkownika uzytk_2, czy może modyfikować dane tabeli test (np. usuwać rekordy) Dlaczego operacja modyfikacji kończy się niepowodzeniem mimo tego, że uzytk_2 otrzymał rolę zmiana_danych?
  1521.  
  1522. SQL> delete from uzytk_1.test where Id=4;
  1523. delete from uzytk_1.test where Id=4
  1524. *
  1525. ERROR at line 1:
  1526. ORA-00942: table or view does not exist
  1527.  
  1528.  
  1529. Operacja nie powiodła się, ponieważ zmiany uprawnień zostaną wprowadzone po ponownym przyłączeniu do bazy użytkownika uzytk_2.
  1530.  
  1531.  
  1532. 25. Wylogować użytkownika uzytk_2 i przyłączyć go ponownie do bazy. Sprawdzić, czy teraz przywileje, związane z rolą zmiana_danych działają.
  1533.  
  1534. SQL> disconn
  1535. Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
  1536. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  1537. SQL> conn
  1538. Enter user-name: uzytk_2
  1539. Enter password:
  1540. Connected.
  1541. SQL> delete from uzytk_1.test where Id=4;
  1542.  
  1543. 1 row deleted.
  1544.  
  1545.  
  1546.  
  1547.  
  1548. 26. Jako użytkownik uzytk_1 utworzyć kolejną rolę o następujących własnościach:
  1549.  
  1550. nazwa roli: zmiana_struktury | przywileje w roli: zmiana struktury (alter) tabeli test | rola identyfikowana przez hasło zmiana
  1551.  
  1552.  
  1553. SQL> create role zmiana_struktury identified by zmiana;
  1554.  
  1555. Role created.
  1556.  
  1557. SQL> grant alter on test to zmiana_struktury;
  1558.  
  1559. Grant succeeded.
  1560.  
  1561.  
  1562.  
  1563. 27. Nadać rolę użytkownikowi uzytk_2.
  1564.  
  1565. SQL> grant zmiana_struktury to uzytk_2;
  1566.  
  1567. Grant succeeded.
  1568.  
  1569.  
  1570.  
  1571. 28. Sprawdzić, czy użytkownik uzytk_2 ma prawo modyfikowania struktury tabeli test użytkownika uzytk_1. W tym celu spróbować dodać do tabeli test nową kolumnę liczba number(5,2). Co uzytk_2 powinien zrobić, aby mógł wykonać tę operację bez konieczności ponownego przyłączenia się do bazy danych?
  1572.  
  1573. SQL> alter table uzytk_1.test add liczba number(5,2);
  1574. alter table uzytk_1.test add liczba number(5,2)
  1575. *
  1576. ERROR at line 1:
  1577. ORA-00942: table or view does not exist
  1578.  
  1579.  
  1580. Aby użytk_2 mógł wykonać tę operację musi wykonać poniższe polecenie:
  1581.  
  1582. SQL> set role zmiana_struktury identified by zmiana;
  1583.  
  1584. Role set.
  1585.  
  1586.  
  1587. SQL> alter table uzytk_1.test add liczba number(5,2);
  1588.  
  1589. Table altered.
  1590.  
  1591.  
  1592.  
  1593. 29. Jako użytkownik uzytk_1 odebrać obie role użytkownikowi uzytk_2. Sprawdzić, czy użytk_2 ma nadal prawa zmiany danych i struktury relacji test (bez ponownego zalogowania).
  1594.  
  1595. uzytk_1:
  1596. SQL> revoke zmiana_danych from uzytk_2;
  1597.  
  1598. Revoke succeeded.
  1599.  
  1600. SQL> revoke zmiana_struktury from uzytk_2;
  1601.  
  1602. Revoke succeeded.
  1603.  
  1604.  
  1605. uzytk_2:
  1606. SQL> delete from uzytk_1.test where Id=3;
  1607. delete from uzytk_1.test where Id=3
  1608. *
  1609. ERROR at line 1:
  1610. ORA-01031: insufficient privileges
  1611.  
  1612.  
  1613. SQL> alter table uzytk_1.test drop column liczba;
  1614.  
  1615. Table altered.
  1616.  
  1617.  
  1618.  
  1619.  
  1620. 30. Jako administrator sprawdzić w widoku słownika danych, jakie profile zostały zdefiniowane w bazie.
  1621.  
  1622. SQL> select * from dba_profiles;
  1623.  
  1624. PROFILE RESOURCE_NAME RESOURCE
  1625. ------------------------------ -------------------------------- --------
  1626. LIMIT
  1627. ----------------------------------------
  1628. DEFAULT COMPOSITE_LIMIT KERNEL
  1629. UNLIMITED
  1630.  
  1631. DEFAULT SESSIONS_PER_USER KERNEL
  1632. UNLIMITED
  1633.  
  1634. DEFAULT CPU_PER_SESSION KERNEL
  1635. UNLIMITED
  1636.  
  1637.  
  1638. PROFILE RESOURCE_NAME RESOURCE
  1639. ------------------------------ -------------------------------- --------
  1640. LIMIT
  1641. ----------------------------------------
  1642. DEFAULT CPU_PER_CALL KERNEL
  1643. UNLIMITED
  1644.  
  1645. DEFAULT LOGICAL_READS_PER_SESSION KERNEL
  1646. UNLIMITED
  1647.  
  1648. DEFAULT LOGICAL_READS_PER_CALL KERNEL
  1649. UNLIMITED
  1650.  
  1651.  
  1652. PROFILE RESOURCE_NAME RESOURCE
  1653. ------------------------------ -------------------------------- --------
  1654. LIMIT
  1655. ----------------------------------------
  1656. DEFAULT IDLE_TIME KERNEL
  1657. UNLIMITED
  1658.  
  1659. DEFAULT CONNECT_TIME KERNEL
  1660. UNLIMITED
  1661.  
  1662. DEFAULT PRIVATE_SGA KERNEL
  1663. UNLIMITED
  1664.  
  1665.  
  1666. PROFILE RESOURCE_NAME RESOURCE
  1667. ------------------------------ -------------------------------- --------
  1668. LIMIT
  1669. ----------------------------------------
  1670. DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD
  1671. UNLIMITED
  1672.  
  1673. DEFAULT PASSWORD_LIFE_TIME PASSWORD
  1674. UNLIMITED
  1675.  
  1676. DEFAULT PASSWORD_REUSE_TIME PASSWORD
  1677. UNLIMITED
  1678.  
  1679.  
  1680. PROFILE RESOURCE_NAME RESOURCE
  1681. ------------------------------ -------------------------------- --------
  1682. LIMIT
  1683. ----------------------------------------
  1684. DEFAULT PASSWORD_REUSE_MAX PASSWORD
  1685. UNLIMITED
  1686.  
  1687. DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD
  1688. NULL
  1689.  
  1690. DEFAULT PASSWORD_LOCK_TIME PASSWORD
  1691. 1
  1692.  
  1693.  
  1694. PROFILE RESOURCE_NAME RESOURCE
  1695. ------------------------------ -------------------------------- --------
  1696. LIMIT
  1697. ----------------------------------------
  1698. DEFAULT PASSWORD_GRACE_TIME PASSWORD
  1699. 7
  1700.  
  1701. MONITORING_PROFILE COMPOSITE_LIMIT KERNEL
  1702. DEFAULT
  1703.  
  1704. MONITORING_PROFILE SESSIONS_PER_USER KERNEL
  1705. DEFAULT
  1706.  
  1707.  
  1708. PROFILE RESOURCE_NAME RESOURCE
  1709. ------------------------------ -------------------------------- --------
  1710. LIMIT
  1711. ----------------------------------------
  1712. MONITORING_PROFILE CPU_PER_SESSION KERNEL
  1713. DEFAULT
  1714.  
  1715. MONITORING_PROFILE CPU_PER_CALL KERNEL
  1716. DEFAULT
  1717.  
  1718. MONITORING_PROFILE LOGICAL_READS_PER_SESSION KERNEL
  1719. DEFAULT
  1720.  
  1721.  
  1722. PROFILE RESOURCE_NAME RESOURCE
  1723. ------------------------------ -------------------------------- --------
  1724. LIMIT
  1725. ----------------------------------------
  1726. MONITORING_PROFILE LOGICAL_READS_PER_CALL KERNEL
  1727. DEFAULT
  1728.  
  1729. MONITORING_PROFILE IDLE_TIME KERNEL
  1730. DEFAULT
  1731.  
  1732. MONITORING_PROFILE CONNECT_TIME KERNEL
  1733. DEFAULT
  1734.  
  1735.  
  1736. PROFILE RESOURCE_NAME RESOURCE
  1737. ------------------------------ -------------------------------- --------
  1738. LIMIT
  1739. ----------------------------------------
  1740. MONITORING_PROFILE PRIVATE_SGA KERNEL
  1741. DEFAULT
  1742.  
  1743. MONITORING_PROFILE FAILED_LOGIN_ATTEMPTS PASSWORD
  1744. UNLIMITED
  1745.  
  1746. MONITORING_PROFILE PASSWORD_LIFE_TIME PASSWORD
  1747. DEFAULT
  1748.  
  1749.  
  1750. PROFILE RESOURCE_NAME RESOURCE
  1751. ------------------------------ -------------------------------- --------
  1752. LIMIT
  1753. ----------------------------------------
  1754. MONITORING_PROFILE PASSWORD_REUSE_TIME PASSWORD
  1755. DEFAULT
  1756.  
  1757. MONITORING_PROFILE PASSWORD_REUSE_MAX PASSWORD
  1758. DEFAULT
  1759.  
  1760. MONITORING_PROFILE PASSWORD_VERIFY_FUNCTION PASSWORD
  1761. DEFAULT
  1762.  
  1763.  
  1764. PROFILE RESOURCE_NAME RESOURCE
  1765. ------------------------------ -------------------------------- --------
  1766. LIMIT
  1767. ----------------------------------------
  1768. MONITORING_PROFILE PASSWORD_LOCK_TIME PASSWORD
  1769. DEFAULT
  1770.  
  1771. MONITORING_PROFILE PASSWORD_GRACE_TIME PASSWORD
  1772. DEFAULT
  1773.  
  1774.  
  1775. 32 rows selected.
  1776.  
  1777.  
  1778.  
  1779. 31. Utworzyć nowy profil o nazwie moj_profil i następujących parametrach:
  1780.  
  1781. maksymalny czas trwania sesji: 15 minut | maksymalny czas bezczynności sesji: 1 minuta | maksymalna liczba równoległych sesji użytkownika: 2 | Pozostałe parametry mają zachować wartości domyślne.
  1782.  
  1783. SQL> create profile moj_profil limit connect_time 15 idle_time 1 sessions_per_user 2;
  1784.  
  1785. Profile created.
  1786.  
  1787.  
  1788.  
  1789. 32. Sprawdzić, czy baza danych jest skonfigurowana w kierunku sprawdzania limitów zasobowych. W tym celu odczytać wartość parametru RESOURCE_LIMIT z widoku dynamicznego gv$parameter. Jeśli wartość parametru to FALSE, zmienić ją na TRUE.
  1790.  
  1791.  
  1792. SQL> select value, type from gv$parameter where name='resource_limit';
  1793.  
  1794. VALUE
  1795. --------------------------------------------------------------------------------
  1796. TYPE
  1797. ----------
  1798. FALSE
  1799. 1
  1800.  
  1801.  
  1802. SQL> alter SYSTEM set resource_limit=TRUE;
  1803.  
  1804. System altered.
  1805.  
  1806. SQL> select value, type from gv$parameter where name='resource_limit';
  1807.  
  1808. VALUE
  1809. --------------------------------------------------------------------------------
  1810. TYPE
  1811. ----------
  1812. TRUE
  1813. 1
  1814.  
  1815.  
  1816.  
  1817. 33. Przydzielić nowy profil użytkownikowi uzytk_2.
  1818.  
  1819. SQL> alter user uzytk_2 profile moj_profil;
  1820.  
  1821. User altered.
  1822.  
  1823.  
  1824.  
  1825. 34. Sprawdzić działanie nowego profilu. W tym celu spróbować uruchomić dodatkowe sesje użytkownika uzytk_2. Sprawdzić, jak długo sesja użytkownika uzytk_2 może pozostać bezczynna.
  1826.  
  1827. Jedna sesja jest już aktywna z poprzednich poleceń.
  1828.  
  1829. Enter user-name: uzytk_2
  1830. Enter password:
  1831.  
  1832. Connected to:
  1833. Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
  1834. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  1835.  
  1836.  
  1837. Enter user-name: uzytk_2
  1838. Enter password:
  1839. ERROR:
  1840. ORA-02391: exceeded simultaneous SESSIONS_PER_USER limit
  1841.  
  1842.  
  1843. SQL> insert into uzytk_1.test (Id, Nazwa) values (5, 'piaty rekord');
  1844. insert into uzytk_1.test (Id, Nazwa) values (5, 'piaty rekord')
  1845. *
  1846. ERROR at line 1:
  1847. ORA-02396: exceeded maximum idle time, please connect again
  1848.  
  1849.  
  1850.  
  1851. 35. Przywrócić użytkownikowi uzytk_2 profil domyślny (default).
  1852.  
  1853. SQL> alter user uzytk_2 profile default;
  1854.  
  1855. User altered.
  1856.  
  1857.  
  1858.  
  1859. 36. Jako administrator sprawdzić, jacy użytkownicy są przyłączeni aktualnie do bazy danych. Sprawdzić statusy ich sesji. Podpowiedź: widok dynamiczny v$session
  1860.  
  1861. SQL> select username, status from v$session;
  1862.  
  1863. USERNAME STATUS
  1864. ------------------------------ --------
  1865. ACTIVE
  1866. ACTIVE
  1867. ACTIVE
  1868. ACTIVE
  1869. ACTIVE
  1870. ACTIVE
  1871. ACTIVE
  1872. ACTIVE
  1873. ACTIVE
  1874. ACTIVE
  1875. ACTIVE
  1876.  
  1877. USERNAME STATUS
  1878. ------------------------------ --------
  1879. ACTIVE
  1880. ACTIVE
  1881. ACTIVE
  1882. ACTIVE
  1883. UZYTK_2 SNIPED
  1884. ACTIVE
  1885. ACTIVE
  1886. ACTIVE
  1887. ACTIVE
  1888. ACTIVE
  1889. UZYTK_1 INACTIVE
  1890.  
  1891. USERNAME STATUS
  1892. ------------------------------ --------
  1893. ACTIVE
  1894. ACTIVE
  1895. ACTIVE
  1896. SYS ACTIVE
  1897. ACTIVE
  1898. ACTIVE
  1899. ACTIVE
  1900. APEX_PUBLIC_USER INACTIVE
  1901. ACTIVE
  1902. ACTIVE
  1903. ACTIVE
  1904.  
  1905. USERNAME STATUS
  1906. ------------------------------ --------
  1907. TEST_A INACTIVE
  1908. APEX_PUBLIC_USER INACTIVE
  1909. APEX_PUBLIC_USER INACTIVE
  1910.  
  1911. 36 rows selected.
  1912.  
  1913.  
  1914.  
  1915. 37. Wykonać polecenia, które usuną sesję użytkownika uzytk_1.
  1916.  
  1917. SQL> alter system kill session '33,7' immediate;
  1918.  
  1919. System altered.
  1920.  
  1921.  
  1922.  
  1923. 38. Sprawdzić, co dzieje się z sesją użytkownika uzytk_1 po jej usunięciu.
  1924.  
  1925. SQL> select username, status from v$session;
  1926.  
  1927. USERNAME STATUS
  1928. ------------------------------ --------
  1929. ACTIVE
  1930. ACTIVE
  1931. ACTIVE
  1932. ACTIVE
  1933. ACTIVE
  1934. ACTIVE
  1935. ACTIVE
  1936. ACTIVE
  1937. ACTIVE
  1938. ACTIVE
  1939. ACTIVE
  1940.  
  1941. USERNAME STATUS
  1942. ------------------------------ --------
  1943. ACTIVE
  1944. ACTIVE
  1945. ACTIVE
  1946. ACTIVE
  1947. UZYTK_2 SNIPED
  1948. ACTIVE
  1949. ACTIVE
  1950. ACTIVE
  1951. ACTIVE
  1952. ACTIVE
  1953. ACTIVE
  1954.  
  1955. USERNAME STATUS
  1956. ------------------------------ --------
  1957. ACTIVE
  1958. ACTIVE
  1959. ACTIVE
  1960. SYS ACTIVE
  1961. ACTIVE
  1962. ACTIVE
  1963. APEX_PUBLIC_USER INACTIVE
  1964. ACTIVE
  1965. ACTIVE
  1966. ACTIVE
  1967. ACTIVE
  1968.  
  1969. USERNAME STATUS
  1970. ------------------------------ --------
  1971. TEST_A INACTIVE
  1972. APEX_PUBLIC_USER INACTIVE
  1973. APEX_PUBLIC_USER INACTIVE
  1974.  
  1975. 36 rows selected.
  1976.  
  1977.  
  1978.  
  1979.  
  1980. 39. Przy założeniu, że użytkownik uzytk_2 nadal pozostaje przyłączony do bazy (jeśli tak nie jest, przyłączyć go), spróbować usunąć użytkownika uzytk_2. Dlaczego operacja nie kończy się powodzeniem?
  1981.  
  1982. SQL> drop user uzytk_2;
  1983. drop user uzytk_2
  1984. *
  1985. ERROR at line 1:
  1986. ORA-01940: cannot drop a user that is currently connected
  1987.  
  1988. Operacja nie udała się, ponieważ użytk_2 jest podłączony do bazy.
  1989.  
  1990.  
  1991.  
  1992. 40. Usunąć sesję użytkownika uzytk_2 i spróbować ponownie dokonać usunięcia użytkownika.
  1993.  
  1994. SQL> alter system kill session '57,9' immediate;
  1995.  
  1996. System altered.
  1997.  
  1998. SQL> drop user uzytk_2;
  1999.  
  2000. User dropped.
  2001.  
  2002.  
  2003.  
  2004. 41. Spróbować usunąć konto użytkownika uzytk_1. Dlaczego trzeba użyć opcji CASCADE?
  2005.  
  2006. SQL> drop user uzytk_1;
  2007. drop user uzytk_1
  2008. *
  2009. ERROR at line 1:
  2010. ORA-01922: CASCADE must be specified to drop 'UZYTK_1'
  2011.  
  2012.  
  2013. SQL> drop user uzytk_1 cascade;
  2014.  
  2015. User dropped.
  2016.  
  2017.  
  2018. Opcja CASCADE jest potrzebna, ponieważ użytk_1 nadał innym użytkownikom przywileje z opcją GRANT OPTION.
  2019.  
  2020.  
  2021.  
  2022. 42. Jeśli w poleceniu 32 (zmiana w RESOUCE_LIMIT) została wykonana modyfikacja, przywrócić poprzedni stan.
  2023.  
  2024. SQL> alter SYSTEM set resource_limit=FALSE;
  2025.  
  2026. System altered.
  2027.  
  2028. 1. Podłącz się do bazy jako administrator.
  2029.  
  2030. [oracle@localhost ~]$ sqlplus
  2031.  
  2032. SQL*Plus: Release 11.2.0.2.0 Production on Wed Apr 15 08:15:50 2015
  2033.  
  2034. Copyright (c) 1982, 2010, Oracle. All rights reserved.
  2035.  
  2036. Enter user-name: sys /as sysdba
  2037. Enter password:
  2038.  
  2039. Connected to:
  2040. Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
  2041. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  2042.  
  2043.  
  2044. 2. Sprawdź, czy w systemie istnieje rola o nazwie hremployee. Jeśli tak, to ją usuń.
  2045.  
  2046. SQL> select * from dba_roles where role='HREMPLOYEE';
  2047.  
  2048. no rows selected
  2049.  
  2050.  
  2051. 3. Sprawdź, czy w systemie istnieją użytkownicy o nazwach: smavris i NGREENBERG. Jeśli tak, to ich usuń.
  2052.  
  2053. SQL> select * from all_users where username = 'SMARVIS';
  2054.  
  2055. no rows selected
  2056.  
  2057. SQL> select * from all_users where username = 'NGREENBERG';
  2058.  
  2059. no rows selected
  2060.  
  2061.  
  2062. 4. Utwórz rolę hremployee i nadaj jej przywilej do podłączania się do bazy.
  2063.  
  2064. SQL> create role hremployee;
  2065.  
  2066. Role created.
  2067.  
  2068. SQL> grant create session to hremployee;
  2069.  
  2070. Grant succeeded.
  2071.  
  2072.  
  2073. 5. Nadaj roli przywileje select oraz update na tabeli employees w schemacie użytkownika hr
  2074.  
  2075. SQL> grant select, update on hr.employees to hremployee;
  2076.  
  2077. Grant succeeded.
  2078.  
  2079.  
  2080. 6. Nadaj rolę hremployee identyfikowaną przez hasło oracle_4U użytkownikom SMARVIS oraz NGREENBERG. Zauważ, że polecenie grant spowoduje utworzenie nowego użytkownika (!).
  2081.  
  2082. Przykład: grant hremployee to smavris identified by oracle_4U;
  2083.  
  2084. SQL> grant hremployee to smarvis identified by oracle_4U;
  2085.  
  2086. Grant succeeded.
  2087.  
  2088. SQL> grant hremployee to ngreenberg identified by oracle_4u;
  2089.  
  2090. Grant succeeded.
  2091.  
  2092.  
  2093. 7. Podłącz się do bazy jako użytkownik NGREENBERG i zaktualizuj w tabeli hr.employees numer telefonu pracownikowi o numerze 110 (John Chen). Pozostaw w tym stanie sesję otwartą.
  2094.  
  2095. SQL> update hr.employees set PHONE_NUMBER='111222333' where EMPLOYEE_ID=110;
  2096.  
  2097. 1 row updated.
  2098.  
  2099.  
  2100. 8. Otwórz nowe okienko terminala SQL*Plus. Jako administrator wykonaj polecenie uśpienia (w ten sposób będziesz pewien, że sesja NGREENBERG jako pierwsza uzyskała blokadę. Kod:
  2101.  
  2102. begin
  2103. sys.dbms_lock.sleep(20);
  2104. end;
  2105. /
  2106.  
  2107. PL/SQL procedure successfully completed.
  2108.  
  2109.  
  2110. 9. Poczekaj na koniec uśpienia i przeloguj się na użytkownika SMARVIS. Z jego sesji wykonaj taką samą aktualizację w tabeli użytkownicy (employee_id=110). Co zauważyłeś?
  2111.  
  2112. Brak odpowiedzi serwera.
  2113.  
  2114. 10. Za pomocą opcji Blocking Sessions Enterprise Managera, stwierdź, która sesja powoduje konflikt blokad (opcja Performance | Additional Monitoring Links | Blocking Sessions).
  2115.  
  2116. NGREENBERG blokuje
  2117.  
  2118. 11. Sprawdź, jakie polecenie spowodowało konflikt blokad. W tym celu Zaznacz sesję NGREENBERG i wybierze opcję View Session. Następnie kliknij link z wartością mieszania dla Previous SQL.
  2119.  
  2120. polecenie update hr.employees....
  2121.  
  2122. 12. Wróć do poprzedniego widoku i zabij sesję użytkownika NGREENBERG.
  2123.  
  2124. Zabito sesję.
  2125.  
  2126. 13. Powróć do sesji SQL*Plus dla użytkownika SMARVIS i zaobserwuj, co się zmieniło.
  2127.  
  2128. 1 row updated.
  2129.  
  2130.  
  2131. 14. Spróbuj w oknie sesji użytkownika NGREENBERG wykonać jakiekolwiek polecenie SQL. Co widzisz?
  2132.  
  2133. ERROR at line 1:
  2134. ORA-03135: connection lost contact
  2135. Process ID: 3419
  2136. Session ID: 51 Serial number: 53
  2137.  
  2138.  
  2139. 15. Zamknij wszystkie sesje.
  2140.  
  2141.  
  2142.  
  2143. Część 2 - Monitoring czynności użytkowników
  2144.  
  2145. Opis: Stwierdziłeś "podejrzane" zmiany w tabeli HR.JOBS - maksymalne wynagrodzenia ulegają wahaniom w dziwny sposób. Jako administrator zdecydowałeś się na włączenie standardowego monitoringu poleceń DML na tej tabeli.
  2146.  
  2147. 16. Uruchom Enterprise Managera i zaloguj się jako administrator z rolą SYSDBA. W zakładce Server wybierz opcję Audit Settings z sekcji Security.
  2148.  
  2149. 17. Kliknij link DB z opcji Audit Trail, następnie zakładkę SPFile.
  2150.  
  2151. 18. W pole Name wpisz audit i kliknij Go
  2152.  
  2153. 19. Z listy parametrów wyświetlonych jako rezultaty przeszukiwania wybierz audit_trail i zmień jego wartość na XML. Obejrzyj kod SQL odpowiadający poleceniu poprzez wybranie opcji Show SQL - powrót za pomocą przycisku Return. Na stronie z parametrami wybierz opcję Apply.
  2154.  
  2155. ALTER SYSTEM SET audit_trail = "XML" SCOPE=SPFILE
  2156.  
  2157. 20. Zrestartuj bazę - czynność konieczna, gdyż zmienił się parametr statyczny bazy danych. Poczekaj, aż uruchomione zostaną wszystkie procesy i jeszcze raz zaloguj się do Enterprise Managera.
  2158.  
  2159. emctl stop dbconsole
  2160. emctl start dbconsole
  2161.  
  2162. 21. W Audit Settings zakładki Server wybierz opcję Audite Objects, następnie Add.
  2163.  
  2164. 22. Upewnij się, że wybranym typem obiektów jest Table, następnie wprowadź w polu Table field wartość HR.JOBS (lub użyj "latarki").
  2165.  
  2166. 23. Przenieś czynności DELETE, INSERT oraz UPDATE za pomocą dwukrotnego kliknięcia z panelu lewego do prawego. Sprawdź odpowiadający kod SQL za pomocą opcji Show SQL. Kliknij OK, żeby aktywować audyt.
  2167.  
  2168. AUDIT DELETE, INSERT, UPDATE ON HR.JOBS BY SESSION
  2169.  
  2170.  
  2171. 24. Wykonaj kolejne czynności, aby sprawdzić później, czy audyt zadziałał.
  2172.  
  2173. 25. Sprawdź, czy użytkownik audit_user istnieje, jeśli tak, to go usuń kaskadowo (na końcu należy podać opcję cascade)
  2174.  
  2175. nie istnieje
  2176.  
  2177. 26. Utwórz nowego użytkownika audit_user identyfikowanego przez hasło oracle_4U
  2178.  
  2179. SQL> create user audit_user identified by oracle_4U;
  2180.  
  2181. User created.
  2182.  
  2183.  
  2184. 27. Nadaj użytkownikowi rolę connect oraz wszystkie przywileje (GRANT ALL) na tabeli hr.jobs
  2185.  
  2186. SQL> grant connect to audit_user;
  2187.  
  2188. Grant succeeded.
  2189.  
  2190. SQL> grant all on hr.jobs to audit_user;
  2191.  
  2192. Grant succeeded.
  2193.  
  2194.  
  2195. 28. Podłącz się z sesji SQL*Plus jako audit_user i wykonaj kolejno polecenia: selekcji z tabeli hr.jobs, aktualizacji kolumny max_salary poprzez pomnożenie jej przez 10 (zatwierdź transakcję) i ponownej selekcji.
  2196.  
  2197. SQL> select * from hr.jobs;
  2198.  
  2199. JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY
  2200. ---------- ----------------------------------- ---------- ----------
  2201. AD_PRES President 20000 40000
  2202. AD_VP Administration Vice President 15000 30000
  2203. AD_ASST Administration Assistant 3000 6000
  2204. FI_MGR Finance Manager 8200 16000
  2205. FI_ACCOUNT Accountant 4200 9000
  2206. AC_MGR Accounting Manager 8200 16000
  2207. AC_ACCOUNT Public Accountant 4200 9000
  2208. SA_MAN Sales Manager 10000 20000
  2209. SA_REP Sales Representative 6000 12000
  2210. PU_MAN Purchasing Manager 8000 15000
  2211. PU_CLERK Purchasing Clerk 2500 5500
  2212.  
  2213. JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY
  2214. ---------- ----------------------------------- ---------- ----------
  2215. ST_MAN Stock Manager 5500 8500
  2216. ST_CLERK Stock Clerk 2000 5000
  2217. SH_CLERK Shipping Clerk 2500 5500
  2218. IT_PROG Programmer 4000 10000
  2219. MK_MAN Marketing Manager 9000 15000
  2220. MK_REP Marketing Representative 4000 9000
  2221. HR_REP Human Resources Representative 4000 9000
  2222. PR_REP Public Relations Representative 4500 10500
  2223.  
  2224. 19 rows selected.
  2225.  
  2226. SQL> update HR.JOBS set MAX_SALARY = MAX_SALARY/10 where JOB_ID = 'PR_REP';
  2227.  
  2228. 1 row updated.
  2229.  
  2230.  
  2231. 29. Przełącz się na użytkownika hr i wykonaj ponowną zmianę - podziel max_salary przez 10. Zatwierdź i sprawdź rezultat zmiany.
  2232.  
  2233. SQL> update HR.JOBS set MAX_SALARY = MAX_SALARY/10 where JOB_ID = 'PR_REP';
  2234.  
  2235. 1 row updated.
  2236.  
  2237. SQL> select * from hr.jobs where job_id = 'PR_REP';
  2238.  
  2239. JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY
  2240. ---------- ----------------------------------- ---------- ----------
  2241. PR_REP Public Relations Representative 4500 10500
  2242.  
  2243.  
  2244. 30. Przełącz się na administratora i usuń kaskadowo użytkownika audit_user
  2245.  
  2246. SQL> drop user audit_user cascade;
  2247.  
  2248. User dropped.
  2249.  
  2250.  
  2251. 31. Poprzez Enterprise Managera sprawdź informacje o obiektach poddanych audytowi - zakładka Server | Audit Settings | Audited Objects. Uwaga dodatkowa: Czy z wyświetlonych informacji można wywnioskować, który użytkownik obniżył wynagrodzenie?
  2252.  
  2253. Schema Object Name User Name Action Time (In Session's Time Zone)
  2254. HR JOBS AUDIT_USER SESSION REC 2015-04-15 09:38:33.184661
  2255.  
  2256. 32. Wycofaj wszystkie zmiany związane z ustawionym wcześniej audytem: w Audited Objects wejdź w schemat HR i kliknij Search, wybierz wszystkie trzy wiersze i kliknij Remove. Na stronie z potwierdzeniem kliknij Show SQL. Potwierdź YES.
  2257.  
  2258. NOAUDIT DELETE ON HR.JOBS
  2259. NOAUDIT INSERT ON HR.JOBS
  2260. NOAUDIT UPDATE ON HR.JOBS
  2261.  
  2262. 33. Na stronie Audit Settings wybierz XML. W zakładce SPFile strony Initialization Parameters wprowadź w pole nazwy do przeszukiwania audit i kliknij Go. Zmień nazwę parametru audit_trail na DB (tak było na początku), sprawdź kod SQL i zatwierdź zmiany.
  2263.  
  2264. ALTER SYSTEM SET audit_trail = "DB" SCOPE=SPFILE
  2265.  
  2266. 34. Zmienił się statyczny parametr inicjalizacyjny, czyli ... zrestartuj bazę danych.
  2267.  
  2268. emctl stop dbconsole
  2269. emctl start dbconsole
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement