Chyba při pokusu o přihlášení do Access databáze: Ad hoc access to OLE DB provider has been denied.

Popis

Při vytváření synchronizačního můstku mezi eWay-CRM® a účetním systémem Pohoda, který používá Access databázi, se při pokusu o přihlášení do databáze objeví tato chyba:

2019-04-02 12:45:01,218 [22] ERROR w3wp [(null)] - Ad hoc access to OLE DB provider 'Microsoft.ACE.OLEDB.12.0' has been denied. You must access this provider through a linked server.
System.Data.SqlClient.SqlException (0x80131904): Ad hoc access to OLE DB provider 'Microsoft.ACE.OLEDB.12.0' has been denied. You must access this provider through a linked server.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
   at eWay.Core.Api.Pohoda.DataProcessorBase.GetData(SqlConnection connection, String openRowSetQuery) in C:\CC.NET\Projects\NAnt\Sources\eWayLibrary\eWayShared\Api\Pohoda\DataProcessorBase.cs:line 118
   at eWay.Core.Api.Pohoda.DataProcessorBase.QueryData(String query) in C:\CC.NET\Projects\NAnt\Sources\eWayLibrary\eWayShared\Api\Pohoda\DataProcessorBase.cs:line 100
   at eWay.Core.Api.Pohoda.ExportProcessors.ExportProcessorBase.GetDataStructure() in C:\CC.NET\Projects\NAnt\Sources\eWayLibrary\eWayShared\Api\Pohoda\ExportProcessors\ExportProcessorBase.cs:line 79
   at eWay.Core.Api.Pohoda.ExportProcessors.ConnectionCheckProcessor.GetDataStructure() in C:\CC.NET\Projects\NAnt\Sources\eWayLibrary\eWayShared\Api\Pohoda\ExportProcessors\ConnectionCheckProcessor.cs:line 62
ClientConnectionId:4f894149-16c5-4248-998b-7ebd5374de94
Error Number:7415,State:1,Class:16

 Verze provideru se může lišit.

Verze

Všechny verze eWay-CRM®

Obtížnost řešení

Vysoká

Postup řešení

Pro vyřešení problému je potřeba nastavit uživateli, který chce do databáze přistoupit, sysadmin práva:

  1. V Microsoft SQL Server Management Studio se přihlašte do instance, kde je serverová databáze eWay-CRM.
  2. Na serveru přejděte ve stromové struktuře do sekce Security > Logins a pravým tlačítkem klikněte na uživatele spojeného s vaší databází. Vyberte možnost Properties.

  1. V Properties klikněte vlevo na sekci Server Roles.

  1. Zde je potřeba zaškrtnout políčko sysadmin.