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