Pada sesi bloggging ini saya akan menulis step by step untuk create database dengan import .bak sehingga diberikan access login dan password tanpa harus mengetahui database yang ada pada table lain. Berikut ini adalah langkah - langkah settingnya :
STEP 1: Connect Pakai Windows
Authentication
STEP 2: Hapus Semua yang Lama & Mulai Bersih
Buka New Query lalu jalankan:
USE master;
GO
-- Hapus user lama jika ada
IF EXISTS (SELECT
name FROM sys.server_principals WHERE name = 'dp300admin')
BEGIN
DROP LOGIN dp300admin;
PRINT 'Login dp300admin dihapus!';
END
GO
-- Hapus database lama jika ada
IF EXISTS (SELECT name FROM sys.databases WHERE name = 'DP300')
BEGIN
ALTER DATABASE DP300 SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE DP300;
PRINT 'Database DP300 dihapus!';
END
GO
-- Verifikasi semua sudah bersih
SELECT name FROM
sys.databases WHERE name = 'DP300';
SELECT name FROM sys.server_principals WHERE name = 'dp300admin';
GO
-- Kedua query harus hasilnya 0
rows ✅
STEP 3: Restore Database dari .BAK
USE master;
GO
RESTORE DATABASE
DP300
FROM DISK = 'D:\FileDownload\AdventureWorks2022.bak'
WITH
MOVE 'AdventureWorks2022'
TO 'D:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\DP300.mdf',
MOVE 'AdventureWorks2022_log'
TO 'D:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\DP300_log.ldf',
REPLACE,
STATS = 10;
GO
Pada Step ini import database
dilakukan pembagian 10% sampai 100%. Jika sudah sampai 100% Success maka akan
otomatis Restore ke database.
STEP 4: Verifikasi Restore Berhasil
-- Cek status database
SELECT name,
state_desc
FROM sys.databases
WHERE name = 'DP300';
GO
Pada Step Ini
Database Harus dalam keadaan Online
STEP 5: Buat Login dp300admin
USE master;
GO –
- Buat Login baru
CREATE LOGIN dp300admin
WITH PASSWORD = 'Admin@DP300!',
DEFAULT_DATABASE =
DP300;
GO
-- Verifikasi login berhasil
dibuat
SELECT name, default_database_name, is_disabled
FROM sys.server_principals
WHERE name = 'dp300admin';
GO
STEP 6: Buat User & Set Permission di DP300
USE DP300;
GO
-- Buat user dp300admin di database DP300
CREATE USER dp300admin FOR LOGIN dp300admin;
GO
-- Beri akses db_owner
ALTER ROLE db_owner
ADD MEMBER
dp300admin;
GO
-- Verifikasi user berhasil dibuat
SELECT name, type_desc
FROM sys.database_principals
WHERE name = 'dp300admin';
GO
STEP 7: Sembunyikan Database Lain dari dp300admin
USE master;
GO
-- Cabut permission lihat semua database
DENY VIEW ANY DATABASE TO dp300admin;
GO
-- Izinkan hanya lihat DP300
GRANT VIEW
ANY DATABASE TO dp300admin;
GO
-- Verifikasi permission
SELECT
pr.name AS LoginName,
pe.state_desc AS State,
pe.permission_name AS Permission
FROM sys.server_permissions
pe
JOIN sys.server_principals pr
ON pe.grantee_principal_id = pr.principal_id
WHERE pr.name
= 'dp300admin';
GO
STEP 8: Test Login di Azure Data Studio atau SSMS
Buat New Connection dengan settings :
- Connection untuk SSMS

- Connection Azure Data Studio
