[SQL SERVER][TSQL]建立唯讀資料表

[SQL SERVER][TSQL]建立唯讀資料表

建立唯讀資料表有什麼好處?唯讀資料表可以讓SQL Server 不再重新編譯執行計畫,

這裡自己紀錄一下 Readonly FileGroup。

 

使用Readonly FileGroup

alter database myspace add filegroup readonlyTables

	
alter database myspace add file
(
name='readonlytbls',filename='D:\sqldata\readonlytbls.ndf',size=100mb,maxsize=1gb,filegrowth=100mb
) to filegroup readonlyTables

	
create table testA
(
c1 int identity(1,1),
c2 varchar(10)
) on readonlyTables 

	
insert into testA values('rico'),('papa'),('spig'),('spapa') 

	
--唯讀檔案群組
alter database myspace modify filegroup readonlyTables readonly 

	
image 

 

ps.透過權限只能達到部份唯讀,

因為無法授與、拒絕或撤銷 sa、dbo、實體擁有者、information_schema、sys 或自己的權限,

不過真正來說檔案群組還是無法避免 sysadmins role 修改,這時只能再使用稽核去紀錄相關操作。

 

 

 

參考

唯讀檔案群組和壓縮

ALTER DATABASE 檔案及檔案群組選項 (Transact-SQL)