{"id":28189936,"url":"https://github.com/rozhakxd/securesqlfirebird","last_synced_at":"2025-05-16T10:11:47.082Z","repository":{"id":292873806,"uuid":"982228074","full_name":"RozhakXD/SecureSQLFirebird","owner":"RozhakXD","description":"Implementation of user access control using Firebird SQL. Granting and revoking permissions (SELECT, INSERT, UPDATE, DELETE) to simulate real-world database security in a multi-user system.","archived":false,"fork":false,"pushed_at":"2025-05-12T15:16:52.000Z","size":9,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-12T16:25:58.235Z","etag":null,"topics":["database","firebird","firebirdsql","flamerobin","grant","revoke","sbd","security","sql"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RozhakXD.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-12T15:02:46.000Z","updated_at":"2025-05-12T15:17:00.000Z","dependencies_parsed_at":"2025-05-12T16:26:00.386Z","dependency_job_id":"e2d5e982-6720-4060-b1a3-6cd9b8f91962","html_url":"https://github.com/RozhakXD/SecureSQLFirebird","commit_stats":null,"previous_names":["rozhakxd/securesqlfirebird"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RozhakXD%2FSecureSQLFirebird","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RozhakXD%2FSecureSQLFirebird/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RozhakXD%2FSecureSQLFirebird/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RozhakXD%2FSecureSQLFirebird/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RozhakXD","download_url":"https://codeload.github.com/RozhakXD/SecureSQLFirebird/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254509476,"owners_count":22082896,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","firebird","firebirdsql","flamerobin","grant","revoke","sbd","security","sql"],"created_at":"2025-05-16T10:11:41.097Z","updated_at":"2025-05-16T10:11:47.073Z","avatar_url":"https://github.com/RozhakXD.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# SISTEM BASIS DATA — Keamanan \u0026 Hak Akses (Firebird SQL)\r\n\r\n## 1. Instalasi (Firebird + FlameRobin) \u0026 Setup\r\n\r\n### 🔗 Link Unduhan:\r\n- Firebird: [https://firebirdsql.org/en/firebird-5-0](https://firebirdsql.org/en/firebird-5-0)\r\n- FlameRobin GUI: [https://github.com/mariuz/flamerobin/releases/tag/0.9.7](https://github.com/mariuz/flamerobin/releases/tag/0.9.7)\r\n\r\n### 🔧 Setup Awal:\r\n- Set password default: `masterkey` (default Firebird)\r\n- Gunakan FlameRobin untuk manajemen GUI atau CLI (isql) untuk akses terminal.\r\n\r\n---\r\n\r\n## 2. Langkah-Langkah Memulai via CLI (Command Prompt)\r\n\r\n1. Buka CMD → Run as Administrator  \r\n2. Arahkan ke folder `isql`:\r\n   - 64-bit:  \r\n    `cd \"C:\\Program Files\\Firebird\\Firebird_5_0\\bin\"`\r\n   - 32-bit:  \r\n    `cd \"C:\\Program Files (x86)\\Firebird\\Firebird_5_0\\\"`\r\n\r\n3. Jalankan Firebird SQL CLI:\r\n    ```bash\r\n    isql\r\n    ```\r\n\r\n4. Buat Database:\r\n\r\n    ```sql\r\n    CREATE DATABASE 'C:\\FirebirdDB\\SECURITY_PROJECT.FDB' \r\n    USER 'SYSDBA' PASSWORD 'masterkey';\r\n    ```\r\n\r\n5. Buat Tabel:\r\n\r\n    ```sql\r\n    CREATE TABLE employees (\r\n        id INT PRIMARY KEY,\r\n        name VARCHAR(50),\r\n        role VARCHAR(30)\r\n    );\r\n\r\n    CREATE TABLE attendance (\r\n        id INT PRIMARY KEY,\r\n        employee_id INT,\r\n        attend_date DATE,\r\n        status VARCHAR(20)\r\n    );\r\n\r\n    COMMIT;\r\n    ```\r\n\r\n6. Masukkan Data Awal:\r\n\r\n    ```sql\r\n    INSERT INTO employees VALUES (1, 'MAULANA', 'Admin');\r\n    INSERT INTO employees VALUES (2, 'ZAHRA', 'Staff');\r\n\r\n    INSERT INTO attendance VALUES (1, 1, CURRENT_DATE, 'Present');\r\n    COMMIT;\r\n    ```\r\n\r\n7. Uji Query:\r\n\r\n    ```sql\r\n    SELECT * FROM employees;\r\n    SELECT * FROM attendance;\r\n    ```\r\n\r\n8. Reconnect Database jika perlu:\r\n\r\n    ```bash\r\n    isql -user 'SYSDBA' -password 'masterkey'\r\n    CONNECT \"C:\\FirebirdDB\\SECURITY_PROJECT.FDB\";\r\n    ```\r\n\r\n---\r\n\r\n## 3. Pengaturan Hak Akses\r\n\r\n### 👥 Daftar User:\r\n\r\n* MAULANA GHANI ROLANDA → `maulana`\r\n* DIDIK SETIAWAN → `didik`\r\n* ZAHRA TSUROYYA POETRI → `zahra`\r\n* ARSYA FATHIHA RAHMAN → `arsya`\r\n* ROZHAK → `rozhak`\r\n\r\n### 🧑‍💻 Pembuatan User:\r\n\r\n```sql\r\nCREATE USER maulana PASSWORD 'pwd_maulana';\r\nCREATE USER didik PASSWORD 'pwd_didik';\r\nCREATE USER zahra PASSWORD 'pwd_zahra';\r\nCREATE USER arsya PASSWORD 'pwd_arsya';\r\nCREATE USER rozhak PASSWORD 'pwd_rozhak';\r\nCOMMIT;\r\n```\r\n\r\n### 🔐 GRANT Hak Akses:\r\n\r\n```sql\r\nGRANT SELECT, INSERT ON employees TO maulana;\r\n\r\nGRANT SELECT, INSERT ON attendance TO zahra;\r\n\r\nGRANT UPDATE (name) ON employees TO didik;\r\nGRANT SELECT ON employees TO didik;\r\n\r\nGRANT DELETE, SELECT ON attendance TO arsya;\r\n\r\nGRANT SELECT ON employees TO rozhak;\r\nGRANT SELECT ON attendance TO rozhak;\r\n\r\nCOMMIT;\r\n```\r\n\r\n---\r\n\r\n## 4. Contoh Tabel Pengaturan Akses\r\n\r\n| No | Subject | Access | Object                |\r\n| -- | ------- | ------ | --------------------- |\r\n| #  | A       | Own    | Table 1               |\r\n| #  | C       | Own    | Table 2               |\r\n| #  | D       | Own    | Table 3               |\r\n| 1  | B       | Read   | Table 1               |\r\n| 2  | B       | Update | Table 1 (col x)       |\r\n| 3  | B       | Insert | Table 2 (col f, h, d) |\r\n| 4  | C       | Insert | Table 1               |\r\n| 5  | D       | Delete | Table 2 (any row)     |\r\n| n  | etc     | …      | …                     |\r\n\r\n---\r\n\r\n## 5. Simulasi Login \u0026 Praktik Akses\r\n\r\n### 🔄 Logout dari isql\r\n\r\n```sql\r\nEXIT;\r\n```\r\n\r\n### 🔑 Login \u0026 Akses Data:\r\n\r\n#### 🧑 Maulana\r\n\r\n```bash\r\nisql\r\nCONNECT \"C:\\FirebirdDB\\SECURITY_PROJECT.FDB\" USER 'maulana' PASSWORD 'pwd_maulana';\r\n\r\nSELECT * FROM employees;\r\nINSERT INTO employees VALUES (3, 'MAULANA TEST', 'Admin');\r\nCOMMIT;\r\n```\r\n\r\n#### 🧑 Zahra\r\n\r\n```bash\r\nisql\r\nCONNECT \"C:\\FirebirdDB\\SECURITY_PROJECT.FDB\" USER 'zahra' PASSWORD 'pwd_zahra';\r\n\r\nSELECT * FROM attendance;\r\nINSERT INTO attendance VALUES (2, 2, CURRENT_DATE, 'Present');\r\nCOMMIT;\r\n```\r\n\r\n#### 🧑 Didik\r\n\r\n```bash\r\nisql\r\nCONNECT \"C:\\FirebirdDB\\SECURITY_PROJECT.FDB\" USER 'didik' PASSWORD 'pwd_didik';\r\n\r\nSELECT * FROM employees;\r\nUPDATE employees SET name = 'DIDIK EDIT' WHERE id = 2;\r\nCOMMIT;\r\n```\r\n\r\n#### 🧑 Arsya\r\n\r\n```bash\r\nisql\r\nCONNECT \"C:\\FirebirdDB\\SECURITY_PROJECT.FDB\" USER 'arsya' PASSWORD 'pwd_arsya';\r\n\r\nSELECT * FROM attendance;\r\nDELETE FROM attendance WHERE id = 2;\r\nCOMMIT;\r\n```\r\n\r\n#### 🧑 Rozhak\r\n\r\n```bash\r\nisql\r\nCONNECT \"C:\\FirebirdDB\\SECURITY_PROJECT.FDB\" USER 'rozhak' PASSWORD 'pwd_rozhak';\r\n\r\nSELECT * FROM employees;\r\nSELECT * FROM attendance;\r\n```\r\n\r\n---\r\n\r\n## 🔐 6. REVOKE Hak Akses\r\n\r\n### 🔸 Perintah REVOKE\r\n\r\n```sql\r\nREVOKE SELECT ON employees FROM rozhak;\r\nCOMMIT;\r\n```\r\n\r\n### 🔸 Uji Akses Setelah REVOKE\r\n\r\n```sql\r\nSELECT * FROM employees;\r\n```\r\n\r\n---\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frozhakxd%2Fsecuresqlfirebird","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frozhakxd%2Fsecuresqlfirebird","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frozhakxd%2Fsecuresqlfirebird/lists"}