CDE Self-Host NPD

Scrip DB

USE master;
GO

DECLARE 
    @DbName sysname = N'BIM19650_CDE',
    @BakPath nvarchar(4000) = N'D:\SQLBackup\BIM19650_CDE_FULL.bak'; -- đổi path

-- đảm bảo thư mục tồn tại và SQL Server service account có quyền ghi
BACKUP DATABASE @DbName
TO DISK = @BakPath
WITH
    INIT,               -- ghi đè file bak nếu đã có
    COMPRESSION,        -- nếu edition hỗ trợ
    CHECKSUM,
    STATS = 10;
GO

-- (khuyến nghị) verify nhanh
DECLARE @BakPath nvarchar(4000) = N'D:\SQLBackup\BIM19650_CDE_FULL.bak';
RESTORE VERIFYONLY FROM DISK = @BakPath WITH CHECKSUM;
GO

Restore đè==============

USE master;
GO

ALTER DATABASE [BIM19650_CDE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO

RESTORE DATABASE [BIM19650_CDE]
FROM DISK = N'D:\DataBase\BIM19650_CDE_FULL.bak'
WITH
    REPLACE,
    RECOVERY,
    STATS = 10;
GO

ALTER DATABASE [BIM19650_CDE] SET MULTI_USER;
GO

kiểm quyền============
SELECT name, type_desc, is_disabled
FROM sys.server_principals
WHERE name = N'NPDISO19650';
Tạo User============

Cập nhật quyền====================

USE [BIM19650_CDE];
GO

-- Nếu trong DB có user nhưng bị đứt mapping, map lại
IF EXISTS (SELECT 1 FROM sys.database_principals WHERE name = N'NPDISO19650')
BEGIN
    ALTER USER [NPDISO19650] WITH LOGIN = [NPDISO19650];
END
ELSE
BEGIN
    CREATE USER [NPDISO19650] FOR LOGIN [NPDISO19650];
END
GO

-- Cấp quyền cơ bản cho app
EXEC sp_addrolemember N'db_datareader', N'NPDISO19650';
EXEC sp_addrolemember N'db_datawriter', N'NPDISO19650';
GRANT EXECUTE TO [NPDISO19650];
GO

Kiểm và đè =======================

USE master;
GO

DECLARE
    @DbName sysname = N'BIM19650_CDE',
    @BakPath nvarchar(4000) = N'D:\DataBase\BIM19650_CDE_FULL.bak',
    @DataFile nvarchar(4000) = N'D:\DataBase\BIM19650_CDE.mdf',
    @LogFile  nvarchar(4000) = N'D:\DataBase\BIM19650_CDE_log.ldf';

-- 2) nếu DB đang tồn tại thì ngắt kết nối để drop/restore
IF DB_ID(@DbName) IS NOT NULL
BEGIN
    ALTER DATABASE [BIM19650_CDE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    DROP DATABASE [BIM19650_CDE];
END
GO

-- 3) restore tạo mới
RESTORE DATABASE [BIM19650_CDE]
FROM DISK = N'D:\DataBase\BIM19650_CDE_FULL.bak'
WITH
    MOVE N'BIM19650_CDE'     TO N'D:\DataBase\BIM19650_CDE.mdf',      -- logical name data
    MOVE N'BIM19650_CDE_log' TO N'D:\DataBase\BIM19650_CDE_log.ldf',  -- logical name log
    RECOVERY,
    STATS = 10;
GO