- person Penulis:
-
Dimas Maryanto
PT. Tabeldata Informatika
- account_balance_wallet Donasi via:
- Saweria a/n Dimas Maryanto
- lock_open Join Premium Members:
- Udemy.com
-
Daftar Materi
-
1. Pengenalan Oracle Database 10
-
1. Silabus Belajar RDBMS Oracle 18c
2. Pengenalan Oracle Database 18c
3. Konsep User dan Schema di Oracle Database 18c
4. Interface untuk Oracle Database
5. Database Interaction dengan SQL
6. Persiapan install Oracle Database 18c
7. Install Oracle 18c XE untuk Windows 10
8. Install Oracle 18c XE untuk Linux
9. Install Oracle 18c XE dengan Docker
10. Install Database Editor untuk Oracle 18c
-
2. SQL - Select Statement 9
-
1. Persiapan Sebelum mulai belajar
2. Aturan Penulisan SQL pada Oracle Database
3. Data Types di Oracle Database
4. Select Statement dalam SQL
5. Pemberian alias pada column dan table
6. Operation Arithmetic di Oracle
7. Menggabungkan column dengan concatnation
8. Handle Null value dengan Coalesce
9. Menghilangkan nilai redundansi dengan klausa Distinct
-
3. SQL - Select with where clause 10
-
1. Klausa where untuk filter data di Oracle
2. Comparison Predicate pada klausa where di Oracle
3. Like Predicate pada klausa where di Oracle
4. Between Predicate pada klausa where di Oracle
5. Null Conditions pada klausa where di Oracle
6. In Predicates pada klausa where di Oracle
7. Exists Condition pada klausa where di Oracle
8. Not Predicate pada klausa where di Oracle
9. Combine Logical pada klausa where di Oracle
10. Mengurutkan data dengan klausa ORDER BY di Oracle
-
4. SQL - Functions 11
-
1. Single Row Function di Oracle
2. Character Single Row Function di Oracle
3. Number Single Row Function di Oracle
4. Date & Time Single Row Function di Oracle
5. Conversion Single Row Function di Oracle
6. Casting Build-In Data Type di Oracle
7. Null-Related Single Row Function
8. Aggregate Functions
9. Klausa Group By di Oracle
10. Where clause dengan Group By Function
11. Having clause dengan Group By Function
-
5. SQL - Join Tables 6
-
6. SQL - Sub Queries 12
-
1. Sub Query di Oracle
2. Sub Query single row result dengan where clause
3. Handle Sub Query Multiple rows Result dengan where operator
4. In Predicates dengan Sub Query di Oracle
5. ANY & SOME dengan Sub Query di Oracle
6. ALL Operator dengan Sub Query di Oracle
7. Sub Query Correlate di Oracle
8. Sub Query EXIST Predicates di Oracle
9. Pairwise Sub Query di Oracle
10. Sub Query Inline View di Oracle
11. Paginate dengan Sub Query di Oracle versi lama
12. Pagination dengan fetch dan offset
-
7. SQL - Expressions 2
-
8. SQL - Data Manipulation Language 11
-
1. Data Manipulation Language (DML)
2. DML - Insert Statement di Oracle
3. DML - Update Statement di Oracle
4. DML - Delete Statement di Oracle
5. DML - Merge Statement di Oracle
6. Transaction Control Language (TCL)
7. TCL - Commit Transaction di Oracle
8. TCL - Rollback Transaction di Oracle
9. TCL - Savepoint di Oracle
10. TCL - Concurrent Transaction
11. TCL - Locking Transaction di Oracle
-
9. SQL - Data Definition Language 19
-
1. Data Definition Language (DDL) di Oracle
2. DDL - Static Data Dictionary View
3. DDL - Membuat Tabel di Oracle
4. DDL - Merubah struktur table
5. DDL - Menghapus table dengan DROP
6. DDL - Truncate Table
7. DDL - Purge Table & Recyclebin
8. DDL - Macam-macam Constraint di Oracle
9. DDL - Not Null Constraint
10. DDL - Unqiue Constraint
11. DDL - Check Constraint
12. DDL - Primary Key Constraint
13. DDL - Foreign Key Constraint
14. DDL - Foreign Key Constraint dengan Options
15. DDL - Enabled, Disabled & Drop Constraints
16. DDL - Deferring Constraint Checks
17. DDL - View di Oracle
18. DDL - Sequences di Oracle
19. Default value untuk Primary Key di Oracle
-
10. Indexing 5
-
11. DDL - User Management 8
-
12. Monitor database activity 5
-
13. Database Design 8
- Lastest Posts
- 09 Apr 23 Working with Deployment object
- 26 Feb 23 Study cases: Microservice apps (...
- 05 Feb 23 Welcome to the Nutanix HCF (Hybr...
- 04 Feb 23 Silabus SRE - Nutanix AHV: Pemul...
- 17 Jan 23 What is Workload Resources?
- 17 Jan 23 Overview Kubernetes Workloads re...
- 15 Jan 23 Getting started with Transaction...
- 14 Jan 23 Overview of Concurrency Control
- 14 Jan 23 Time your practice (part 3)
- 08 Jan 23 Cleanup Data from Table
DDL - Object Privileges
Sebuah Oject Privilege yaitu digunakan melakukan beberapa action atau perintah SQL pada object database (table, view, index) pada user/schema lain.
Berikut adalah daftar / list Object Privileges yang sering digunakan pada suatu table atau view
SELECT
/READ
, mengijikan untuk melakukan perintah select ke table tersebutINSERT
, mengijikan untuk melakukan perintah insert ke tabel tersebutUPDATE
, mengijinkan untuk melakukan perintah update data semua atau beberapa column saja pada suatu table tersebutDELETE
, mengijikan untuk melakukan perintah delete data pada table tersebutALTER
, mengijinkan untuk memodifikasi strutur object (table atau view)INDEX
, mengijikan untuk membuat indexREFERENCES
, mengijikan untuk membuat foreign key berdasarkan column pada table tersebut.DEBUG
, mengijinkan untuk melihat log jika PL/SQL di execute
Untuk lebih lengkapnya, boleh baca disini
Jadi misalnya disini kita login sebagai user toko_online
sekarang saya mau coba select ke tablenya employees
dari user / schema hr
seperti berikut:
bash> sqlplus toko_online/toko@XEPDB1
SQL*Plus: Release 18.0.0.0.0 - Production on Fri Mar 12 19:24:30 2021
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
SQL> select employee_id, first_name
from hr.employees;
from hr.employees
*
ERROR at line 2:
ORA-01031: insufficient privileges
GRANT
Object Privileges
Sekarang coba login sebagai system
kemudian jalankan perintah berikut:
Sekarang coba jalankan maka, hasilnya seperti berikut:
bash> sqlplus system/passwordnyaOracle18@XEPDB1
SQL*Plus: Release 18.0.0.0.0 - Production on Fri Mar 12 20:07:05 2021
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Last Successful login time: Fri Mar 12 2021 19:26:37 +00:00
Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
SQL> grant READ, UPDATE, REFERENCES
on hr.EMPLOYEES
to toko_online;
Grant succeeded.
SQL> conn toko_online/toko@XEPDB1
Connected.
SQL> select employee_id, first_name
from hr.employees
where manager_id is null;
EMPLOYEE_ID FIRST_NAME
----------- --------------------
100 Steven
SQL>
Selain itu juga kita bisa memberikan semua access object privileges ke user tersebut dengan perintah berikut:
Menampilkan informasi Object privilages
Untuk menampilkan Object Privileges apa saja yang telah di berikan kita bisa menggunakan perintah seperti berikut:
Maka hasilnya seperti berikut:
sqlplus system/passwordnyaOracle18@XEPDB1
SQL*Plus: Release 18.0.0.0.0 - Production on Fri Mar 12 20:12:09 2021
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Last Successful login time: Fri Mar 12 2021 20:07:05 +00:00
Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
SQL> select OWNER, TABLE_NAME, PRIVILEGE, GRANTOR
from DBA_TAB_PRIVS
where GRANTEE = 'TOKO_ONLINE'
order by TABLE_NAME, PRIVILEGE;
OWNER TABLE_NAME PRIVILEGE GRANT
----- -------------------- --------------- -----
HR DEPARTMENTS ALTER HR
HR DEPARTMENTS DEBUG HR
HR DEPARTMENTS DELETE HR
HR DEPARTMENTS FLASHBACK HR
HR DEPARTMENTS INDEX HR
HR DEPARTMENTS INSERT HR
HR DEPARTMENTS ON COMMIT REFRESH HR
HR DEPARTMENTS QUERY REWRITE HR
HR DEPARTMENTS READ HR
HR DEPARTMENTS REFERENCES HR
HR DEPARTMENTS SELECT HR
HR DEPARTMENTS UPDATE HR
HR EMPLOYEES READ HR
HR EMPLOYEES REFERENCES HR
HR EMPLOYEES UPDATE HR
15 rows selected.
GRANT
update specific columns
Terkadang kita hanya di perbolehkan untuk melakukan update pada beberapa kolom saja pada suatu table di schema orang lain. Berikut implementasinya:
Login sebagai system
kemudian jalan perintah berikut:
Sekarang coba jalankan, maka hasilnya seperti berikut:
bash> sqlplus toko_online/toko@XEPDB1
SQL*Plus: Release 18.0.0.0.0 - Production on Fri Mar 12 20:12:09 2021
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Last Successful login time: Fri Mar 12 2021 20:07:05 +00:00
Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
SQL> update hr.EMPLOYEES
set SALARY = 25000
where EMPLOYEE_ID = 100; 2 3
update hr.EMPLOYEES
*
ERROR at line 1:
ORA-01031: insufficient privileges
SQL> conn system/passwordnyaOracle18@XEPDB1
Connected
SQL> grant select, update (SALARY, COMMISSION_PCT) on hr.EMPLOYEES
to toko_online; 2
Grant succeeded.
SQL> select OWNER, TABLE_NAME, PRIVILEGE, GRANTOR
from DBA_TAB_PRIVS
where GRANTEE = 'TOKO_ONLINE'
order by TABLE_NAME, PRIVILEGE;
OWNER TABLE_NAME PRIVILEGE GRANT
----- -------------------- --------------- -----
HR EMPLOYEES SELECT HR
SQL> conn toko_online/toko@XEPDB1
Connected.
SQL> update hr.EMPLOYEES
set FIRST_NAME = 'Dimas'
where EMPLOYEE_ID = 100;
update hr.EMPLOYEES
*
ERROR at line 1:
ORA-01031: insufficient privileges
SQL> update hr.EMPLOYEES
set SALARY = 25000
where EMPLOYEE_ID = 100;
1 row updated.
REVOKE
object privileges
Untuk mencabut hak akses dari user tersebut, kita bisa menggunakan perintah:
Atau kita juga bisa mencabut semuanya dengan perintah berikut:
Yuk simak juga videonya,
Dan jika temen-temen belajar hal baru kali ini jangan lupa buat Like, Subcribe, dan Share ke temen kalian. Terimakasih!!!
-
Referensi
https://docs.oracle.com/en/database/oracle/oracle-database/18/dbseg/configuring-privilege-and-role-authorization.html#GUID-1592480B-9EFC-4C3F-B84F-F518A5B80CF9
https://docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/GRANT.html#GUID-20B4E2C0-A7F8-4BC8-A5E8-BE61BDC41AC3__BGBCIIEG