2010-03-27 7 views
19

Bu tablodaki bazı kayıt kümelerini güncelleştiriyorum, bundan sonra bu tabloyu yalnızca okumam gerekiyor.Masa nasıl yapılır Sadece SQL Server'da okuyun musunuz?

Peki bir tablo nasıl yapılır Salt okunur SQL Server'da? silmek sağlayan hala güncellemeyi engellemek ve belirli bir masaya yerleştirin ancak ediyorum

+0

Bazı iyi cevaplar burada. Sorum şu: tablo kimin salt okunur olması gerekir? SysAdmins her zaman bir şey yapma gücüne sahiptir, ancak zaman ve çaba sarf edebilir. –

+1

sistem yönetici kullanıcılarından başka – Jeyavel

cevap

29

basit bir alternatifi:

ALTER TABLE mytable WITH NOCHECK ADD CONSTRAINT chk_read_only CHECK(1 = 0) 

unutmayın: Bu ekler ve güncelleştirmeler kaçınır fakat siler birleştirilmez verir.

a) kendi veritabanı veya
b) salt okunur bir dosya grubu ve işareti koymak koymak

, burada:

Eğer gerçekten bir tablo gerekiyorsa

gerçekten sadece sizler de olabilir okunacak nasıl:

USE [master] 

GO 

ALTER DATABASE [csvtosp] ADD FILEGROUP [READONLYTABLES] 

GO 

ALTER DATABASE [csvtosp] ADD FILE (NAME = N'mydb_readonly_tables', FILENAME = N'G:\SQL2005DATA\mydb_readonly_tables.ndf' , SIZE = 3072KB , FILEGROWTH = 1024KB) TO FILEGROUP [READONLYTABLES] 

GO 

USE csvtosp 

GO 

DROP TABLE mytable 

CREATE TABLE mytable (

    somedata char(8000) not null 

) ON READONLYTABLES 

GO 

Bu konuda daha ayrıntılı bilgi için buraya gidin:

How to make a table Read Only in SQL Server

+2

Bu yanıtı iyileştirmeye çalıştım ancak düzenlemem reddedildi. Lütfen bir dosya grubunun nasıl hazırlandığını öğrenmek için lütfen eksik kodu ekleyin: 'ALTER DATABASE [csvtosp] MODIFY FILEGROUP [READONLYTABLES] READONLY' – Baodad

+0

1. Filegroup' READONLYTABLES' READONLY 'tur 2. Başka bir dosya grubuna taşımak için tabloyu düşürmenize gerek yoktur . Kümelenmiş dizini yeniden oluşturmanız yeterlidir. –

2

Sadece genel halka okundu, ancak yine de tabloyu daha sonraki bir tarihte düzenlemek istiyorsanız, veritabanı için birden fazla kullanıcı oluşturmayı ve bu veritabanına farklı izinler vermeyi düşünebilirsiniz - ideal olarak tabloyu değiştirmeye izin zaten değil genel kamu erişimine de bunu yapar, sadece dosya grubu

  • ekleme/güncelleme hibe etmeyin oku geri alma trans
  • vb

  • 7
    1. Trigger kesmek/silme izinleri

    3 numara muhtemelen en iyi uygulamadır. Örneğin, bağlantınız örneğin db_owner ise, tetikleyici tetiği devre dışı bırakabilir veya tabloyu farklı bir dosya grubuna taşıyabilir.

    İlgili konular