VS2008

2009-06-30 16 views
5

'dan bir veritabanı projesi dağıtırken kullanıcıları göz ardı etme Şu anda yerel geliştirme ortamı ve testi için farklı izinlere/kullanıcılara sahip bir uygulama üzerinde çalışıyorum. Çevreye yayarken kullanıcıları ve izinleri yok saymak istiyorum. .sqldeployment dosyasının altında, yalnızca bir kullanıcının izinlerini (IgnorePermissions) ve rol üyeliğini (IgnoreRoleMembership) görmezden gelmek, ancak kullanıcıların kendisini görmezden gelmek için değil. Mümkün mü?VS2008

+0

İyi soru, cevap hakkında utanç. –

cevap

3

Üzgünüm, şu anda Visual Studio'nun 2008 sürümünde mümkün değil.

+3

Ayrıca, aynı soruna sahip olduğum için VS2010'da da mümkün görünmüyor. –

1

Belirgin bir yol yoktur - bu özellik için birçok istek here. Komut satırı aracı vsdbcmd.exe, aynı sorundan muzdarip.

Geçici bir çözüm olarak, kullanıcıları ve şema yetkilendirmesini dağıtım SQL komut dosyasından kaldırmak için bir PowerShell komut dosyası kullanıyorum. Bu normal ifade çok drop KULLANIM açıklamaları göz ardı şekilde modifiye edilebilir, vb

$rxUser = New-Object System.Text.RegularExpressions.Regex "PRINT[^;]*;\s*GO\s*CREATE USER \[[^\]]*](\s*WITH DEFAULT_SCHEMA = \[[^\]]*])?;\s*GO\s*", SingleLine 
$rxSchema = New-Object System.Text.RegularExpressions.Regex "PRINT[^;]*;\s*GO\s*CREATE SCHEMA \[[^\]]*]\s*AUTHORIZATION \[[^\]]*];\s*GO\s*", SingleLine 

Get-Item "*.sql" | ForEach-Object { 
    $input = [System.IO.File]::ReadAllText($_.FullName) 
    $input = $rxUser.Replace($input, "") 
    $input = $rxSchema.Replace($input, "") 

    $output = [System.IO.File]::CreateText($_.FullName) 
    $output.Write($input) 
    $output.Close() 
} 

sonrası dağıtma aşama (çalıştı) veya bir TeamCity yapı adım olarak çalıştırılabilir.

İlgili konular