Wednesday, November 20, 2024

.::: Allow user oracle access to another user /schema :::.


Agar user aisyah dapat mengakses semua objek dalam schema adminx dengan hak istimewa yang sama seperti yang dimiliki adminx, Anda perlu memberikan akses eksplisit untuk semua objek, atau Anda bisa memberikan peran penuh pada schema tersebut. Berikut langkah-langkahnya:

1. Berikan Hak Akses untuk Seluruh Objek Schema adminx
Gunakan perintah GRANT untuk memberikan akses ke semua objek milik adminx kepada aisyah.

SELECT 'GRANT ALL ON ADMIN.' || object_name || ' TO AISYAH' AS grant_command
FROM all_objects
WHERE owner = 'ADMIN' AND object_type IN ('TABLE', 'VIEW', 'SEQUENCE', 'PROCEDURE', 'FUNCTION')

 

Tuesday, November 19, 2024

.::: Create user Oracle Database 19C & Priviledge admin & specific table :::


1. create user & priviledge admin

CREATE USER admin IDENTIFIED BY oracle;
GRANT CONNECT, RESOURCE,oem_monitor TO admin;
ALTER USER admin QUOTA UNLIMITED ON USERS;

-- Membuat user admin dengan password oracle
CREATE USER admin IDENTIFIED BY oracle;

-- Memberikan hak akses dasar kepada user admin
GRANT CONNECT, RESOURCE,oem_monitor TO admin;

-- Memberikan hak akses untuk melakukan administrasi
GRANT CREATE SESSION TO admin;
GRANT UNLIMITED TABLESPACE TO admin;
GRANT DBA TO admin;

-- Memberikan hak akses untuk membaca data dictionary (opsional)
GRANT SELECT ANY DICTIONARY TO admin;

 

.::: Drop table default MB_, MD_, MIGR_ in Oracle Database & cleansing RECYCLEBIN :::.

 


1. Check table
SELECT *
FROM user_tables
WHERE table_name LIKE 'MB_%' OR table_name LIKE 'MIGR_%' OR table_name LIKE 'MD_%';

 


2. create script drop table by filter MB_ &  MIGR
_
SELECT 'DROP TABLE ' || table_name || ' CASCADE CONSTRAINTS;' AS drop_command
FROM user_tables
WHERE table_name LIKE 'MB_%' OR table_name LIKE 'MIGR_%';

Monday, November 18, 2024

.::: Simulation Deadlocks MariaDB MySQL :::

 
1. create table & insert
CREATE TABLE clients (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    balance DECIMAL(10, 2)
);

-- Memasukkan data awal ke tabel 'clients'
INSERT INTO clients (id, name, balance) VALUES
(1, 'John', 50),
(2, 'Alice', 150);


2. Memulai transaksi terminal 1
START TRANSACTION;

-- Melakukan update pada saldo (balance) untuk id = 1
UPDATE clients SET balance = balance + 50 WHERE id = 1;

Friday, November 15, 2024

.:: Extract backup mysqldump to convert only table specify in PostgreSQL EDB :::.


A. Extract backup from file backup

1. Backup full database
pg_dump teguhth  > teguhth_singledb.sql

2. extract table only specific table (example barang)

---yang benar
sed -n '/-- Name: barang; Type: TABLE; Schema: public; Owner: postgres/,/ALTER TABLE public.barang OWNER TO postgres;/p' teguhth_singledb.sql > barang_filtered.sql

sed -n '/-- Name: barang barang_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres/,/);/p' teguhth_singledb.sql >> barang_filtered.sql

sed -n '/-- Data for Name: barang; Type: TABLE DATA; Schema: public; Owner: postgres/,/\\\./p' teguhth_singledb.sql >> barang_filtered.sql

.:: Extract backup mysqldump to convert only table specify (Sample Pembelian) in MySQL MariaDB :::.

A. Extract backup from file backup

1. Backup full database

mysqldump -u root -p teguhth  > table_teguhth.sql ;

2. extract table only specific table (example barang)

sed -n -e '/DROP TABLE.*`barang`/,/UNLOCK TABLES/p' table_teguhth.sql > /data/pertable/barang_only.sql

Wednesday, November 13, 2024

.::: How to Sample Simulation Deadlock Oracle Database & Trouble shoot & check running query process :::.


Untuk mensimulasikan deadlock di tabel locking_test di Oracle, kita perlu menjalankan dua sesi (dua transaksi) secara bersamaan, di mana setiap sesi saling mengunci resources (baris) yang akan diakses oleh sesi lainnya.

Berikut adalah langkah-langkah simulasi deadlock di Oracle menggunakan tabel locking_test:

Langkah 1: Buat Tabel dan Data
Jalankan skrip ini terlebih dahulu untuk membuat tabel dan menambahkan data awal:


CREATE TABLE locking_test (
    id NUMBER PRIMARY KEY,
    data VARCHAR2(50)
);

INSERT INTO locking_test (id, data) VALUES (1, 'Initial Data');
INSERT INTO locking_test (id, data) VALUES (2, 'Second Data');
COMMIT;

Monday, November 11, 2024

.::: How to Sample Simulation Blocking Locking Oracle Database & Trouble shoot & check running query process :::.

 
1. create table sample


CREATE TABLE locking_test (
    id NUMBER PRIMARY KEY,
    data VARCHAR2(50)
);

INSERT INTO locking_test (id, data) VALUES (1, 'Initial Data');
commit;

2. open 2 or 3 terminal

Buka Dua Sesi di SQL*Plus atau Alat Lainnya
Anda perlu dua sesi terpisah (misalnya, di SQL*Plus atau alat database lain seperti SQL Developer) untuk mensimulasikan locking. Sesi 1 akan melakukan UPDATE tanpa melakukan COMMIT atau ROLLBACK, sehingga menahan lock di baris tersebut. Sesi 2 akan mencoba melakukan operasi yang sama dan akan mengalami blocking sampai lock dilepas.

Wednesday, November 6, 2024

.::: Install Oracle 12C in Centos 8 :::.

 1. Update Sistem <optional>

sudo dnf update -y

2. Install package

sudo dnf install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++-devel libxcb make smartmontools sysstat

3. Create user & Group

sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba oracle
sudo passwd oracle

Thursday, October 31, 2024

.::: Sample Database ERP (Enterprise Resource Planning) and sample query using Join in PostgreSQL EDB :::.

Berikut ini adalah contoh pembuatan database ERP yang lebih sederhana dengan fokus pada customers dan products, serta tabel tambahan orders untuk mengaitkan data pelanggan dengan produk yang mereka pesan. Setiap tabel akan diisi dengan minimal 10 baris data.

A. Sample DB ERP

1. Create Database ERP
CREATE DATABASE TEGUHTH_ERPDB;
USE TEGUHTH_ERPDB;


2. Create Tabel customers
CREATE TABLE customers (
    customer_id SERIAL PRIMARY KEY,
    customer_name VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE,
    phone VARCHAR(15),
    address TEXT,
    created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);

.::: Sample Database ERP (Enterprise Resource Planning) and sample query using Join in MariaDB MySQL :::.

Berikut ini adalah contoh pembuatan database ERP yang lebih sederhana dengan fokus pada customers dan products, serta tabel tambahan orders untuk mengaitkan data pelanggan dengan produk yang mereka pesan. Setiap tabel akan diisi dengan minimal 10 baris data.

1. Create Database ERP
CREATE DATABASE TEGUHTH_ERPDB;
USE TEGUHTH_ERPDB;

2. Create Tabel customers
CREATE TABLE customers (
    customer_id INT AUTO_INCREMENT PRIMARY KEY,
    customer_name VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE,
    phone VARCHAR(15),
    address TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Tuesday, October 1, 2024

.::: Check Date when Microsoft SQL Server (MSSQL), MariaDB MySQL & PostgreSQL Installed & Upgraded :::.


1. MSSQL
 
SELECT @@servername as ServerName,SERVERPROPERTY('productversion') as ProductVersion
      ,SERVERPROPERTY ('productlevel') as ProductLevel
      ,SERVERPROPERTY ('edition') as Edition
      ,SERVERPROPERTY ('MachineName') as MachineName
      ,SERVERPROPERTY ('LicenseType') as LicenseType
      ,SERVERPROPERTY ('NumLicenses') as NumLicenses
      ,create_date as 'SQLInstallDate'
      ,(select modify_date from sys.server_principals where name like '%##MS_SQLAuthenticatorCertificate##%') as SQLUpgradeDate
FROM sys.server_principals
WHERE name='NT AUTHORITY\SYSTEM';

 


2. MariaDB MySQL

Thursday, September 26, 2024

.::: Backup All User, Specify User , Permission, Roles, Server Roles in SQL Server :::.

 
Untuk melakukan backup user dan privilege di SQL Server, Anda bisa menggunakan perintah Transact-SQL (T-SQL) untuk mengekstrak informasi tentang pengguna (user) dan hak akses (privilege). Berikut langkah-langkah yang dapat dilakukan:

1. Backup User Login dan Mapping ke Database

Gunakan skrip di bawah ini untuk mencadangkan login pengguna dan mappingnya ke database.
Output dari skrip ini akan memberikan Anda perintah untuk membuat ulang login yang sudah ada. Perhatikan bahwa password tidak dapat diekstrak, jadi Anda perlu memasukkannya secara manual saat melakukan restore.

-- Backup logins
SELECT @@servername as ServerName,'CREATE LOGIN [' + l.name + '] '
    + CASE
        WHEN l.type_desc = 'SQL_LOGIN' THEN 'WITH PASSWORD = ''<password>'', '
        WHEN l.type_desc = 'WINDOWS_LOGIN' THEN 'FROM WINDOWS, '
        ELSE ''
      END
    + ' DEFAULT_DATABASE=[' + l.default_database_name + ']'
    + CASE
        WHEN l.is_disabled = 1 THEN ', DISABLE;'
        ELSE ';'
      END AS CreateLoginScript
FROM sys.server_principals l
WHERE l.type IN ('S', 'U');  -- SQL Logins (S) and Windows Logins (U)
 

Popular Posts