簡體   English   中英

從VS2008部署數據庫項目時忽略用戶

[英]Ignoring users when deploying a database project from VS2008

我目前正在開發一個對本地開發環境和測試具有不同權限/用戶的應用程序。 我希望在部署到任一環境時能夠忽略用戶和權限。 在.sqldeployment文件下,似乎只有用於忽略用戶的權限(IgnorePermissions)和角色成員身份(IgnoreRoleMembership)的選項,而不是忽略用戶自己。 這可能嗎?

抱歉,目前無法在2008版的Visual Studio中使用。

沒有一個明顯的方式-許多這種功能要求在這里 命令行工具vsdbcmd.exe遇到同樣的問題。

作為解決方法,我使用PowerShell腳本從部署SQL腳本中刪除用戶和架構授權。 這可以作為部署后步驟(未嘗試)或TeamCity構建步驟等運行。

$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()
}

可以修改正則表達式以忽略DROP USER語句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM