0

データベースをディレクトリにバックアップする SQL Server に関する問題をデバッグしています。

私が実行しているアプリケーションは、app.manifestファイルに設定されている管理者権限で起動します。

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

アプリケーションは、初期ディレクトリをデフォルトの SQL Server バックアップ ディレクトリに設定します。

C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup

ユーザーはバックアップ ディレクトリを変更することが許可されており、それを入力できるため、次のように入力します。

C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup 12

次に、プログラムはストアド プロシージャを使用してディレクトリにバックアップするように SQL に指示します。

BACKUP DATABASE @DatabaseName TO DISK = @FilePath WITH NAME = @BackupName

どこ:

  • @FilePathユーザーが選択したディレクトリです
  • @BackupNameYYYYMMDDHHMMSS.bak

呼び出しは次のように失敗します。

オペレーティング システム エラー 5 (アクセスが拒否されました)。

そこで、デフォルトの SQL Server バックアップ ディレクトリのコマンド ラインで icacls を使用して、ディレクトリの権限を調査しました。

icacls .\backup 

CREATOR OWNER:(OI)(CI)(IO)(F) 
NT AUTHORITY\SYSTEM:(OI)(CI)(F) 
BUILTIN\Administrators:(OI)(CI)(F) 
MIKE-2K8-1\SQLServerMSSQLUser$mike-2k8-1$MSSQLSERVER:(OI)(CI)(F) 

次に、ユーザーが作成するディレクトリに対して、次のようにします。

icacls .\backup 12

BUILTIN\Administrators:(I)(F) 
CREATOR OWNER:(I)(OI)(CI)(IO)(F) 
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F) 
BUILTIN\Administrators:(I)(OI)(CI)(IO)(F) 
BUILTIN\Users:(I)(OI)(CI)(RX) 
MIKE-2K8-1\SQLServerMSSQLUser$mike-2k8-1$MSSQLSERVER:(I)(OI)(CI)(RX)

SQLServerMSSQLUserディレクトリによってアクセス許可が異なることがわかります...どうすればアクセス許可を変更できますか?

4

1 に答える 1

1

BACKUP DATABASE クエリを実行しているユーザー アカウントは、db_backupoperator グループの一部ですか?

于 2014-09-04T16:49:19.910 に答える