C# 由于权限不足,无法迁移Oracle数据库(最初创建表)?
我是Oracle DB的新手,不知道应该为用户设置什么样的权限,以便他可以执行创建、删除、删除、插入、更新和选择表等基本命令 实际上,我已经为我的用户帐户设置了所有这些权限。 但在运行migrate时失败,控制台窗口中显示以下错误: 2019-05-27 08:29:07.837809线程ID:1(错误)OracleRelationalCommand.Execute():Oracle.ManagedDataAccess.Client.OracleException(0x80004005):ORA-01031:权限不足 ORA-06512:在第2行 在OracleInternal.ServiceObjects.OracleConnectionImpl.VerifyExecution(Int32&cursorId、Boolean bThrowArrayBindRelatedErrors、SqlStatementType、SqlStatementType、Int32 arrayBindCount、OracleException&Exception for ArrayBindML、Boolean&hasMoreRowsInDB、Boolean BfirstitionDone) 在OracleInternal.ServiceObjects.OracleCommandImpl.ExecuteNonQuery(字符串commandText、OracleParameterCollection paramColl、CommandType CommandType、OracleConnectionImpl connectionImpl、Int32 longFetchSize、Int64 clientInitialLOBFS、OracleDependencyImpl或LdependencyImpl、Int64[]&scnFromExecution、OracleParameterCollection&bindByPositionParamColl、Boolean&bBindParamPresent、OracleException&Exception for ArrayBindML、OracleConnection连接、OracleLogicalTransaction&OracleLogicalTransaction、Boolean isFromEF) 位于Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery()处 在Oracle.EntityFrameworkCore.Storage.Internal.OracleRelationalCommandBuilderFactory.OracleRelationalCommandBuilder.OracleRelationalCommand.Execute(IRelationalConnection连接、DbCommandMethod执行方法、iRelationalDictionaryC# 由于权限不足,无法迁移Oracle数据库(最初创建表)?,c#,oracle,entity-framework-core,database-migration,entity-framework-migrations,C#,Oracle,Entity Framework Core,Database Migration,Entity Framework Migrations,我是Oracle DB的新手,不知道应该为用户设置什么样的权限,以便他可以执行创建、删除、删除、插入、更新和选择表等基本命令 实际上,我已经为我的用户帐户设置了所有这些权限。 但在运行migrate时失败,控制台窗口中显示以下错误: 2019-05-27 08:29:07.837809线程ID:1(错误)OracleRelationalCommand.Execute():Oracle.ManagedDataAccess.Client.OracleException(0x80004005):ORA
2参数值)
执行DbCommand失败(292ms)[参数=[],命令类型='Text',命令超时='0']
开始
执行“立即”创建表
“客户”(
默认情况下在NULL上生成的“Id”号(10)作为标识不为NULL,
...
)';
结束;
2019-05-27 08:29:07.842817线程ID:1(错误)OracleRelationalCommand.Execute():Oracle.ManagedDataAccess.Client.OracleException(0x80004005):ORA-01031:权限不足
ORA-06512:在第2行
在OracleInternal.ServiceObjects.OracleConnectionImpl.VerifyExecution(Int32&cursorId、Boolean bThrowArrayBindRelatedErrors、SqlStatementType、SqlStatementType、Int32 arrayBindCount、OracleException&Exception for ArrayBindML、Boolean&hasMoreRowsInDB、Boolean BfirstitionDone)
在OracleInternal.ServiceObjects.OracleCommandImpl.ExecuteNonQuery(字符串commandText、OracleParameterCollection paramColl、CommandType CommandType、OracleConnectionImpl connectionImpl、Int32 longFetchSize、Int64 clientInitialLOBFS、OracleDependencyImpl或LdependencyImpl、Int64[]&scnFromExecution、OracleParameterCollection&bindByPositionParamColl、Boolean&bBindParamPresent、OracleException&Exception for ArrayBindML、OracleConnection连接、OracleLogicalTransaction&OracleLogicalTransaction、Boolean isFromEF)
位于Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery()处
在Oracle.EntityFrameworkCore.Storage.Internal.OracleRelationalCommandBuilderFactory.OracleRelationalCommandBuilder.OracleRelationalCommand.Execute(IRelationalConnection连接、DbCommandMethod执行方法、iRelationalDictionary
2个参数值)
Oracle.ManagedDataAccess.Client.OracleException(0x80004005):ORA-01031:权限不足
ORA-06512:在第2行
在OracleInternal.ServiceObjects.OracleConnectionImpl.VerifyExecution(Int32&cursorId、Boolean bThrowArrayBindRelatedErrors、SqlStatementType、SqlStatementType、Int32 arrayBindCount、OracleException&Exception for ArrayBindML、Boolean&hasMoreRowsInDB、Boolean BfirstitionDone)
在OracleInternal.ServiceObjects.OracleCommandImpl.ExecuteNonQuery(字符串commandText、OracleParameterCollection paramColl、CommandType CommandType、OracleConnectionImpl connectionImpl、Int32 longFetchSize、Int64 clientInitialLOBFS、OracleDependencyImpl或LdependencyImpl、Int64[]&scnFromExecution、OracleParameterCollection&bindByPositionParamColl、Boolean&bBindParamPresent、OracleException&Exception for ArrayBindML、OracleConnection连接、OracleLogicalTransaction&OracleLogicalTransaction、Boolean isFromEF)
位于Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery()处
在Oracle.EntityFrameworkCore.Storage.Internal.OracleRelationalCommandBuilderFactory.OracleRelationalCommandBuilder.OracleRelationalCommand.Execute(IRelationalConnection连接、DbCommandMethod执行方法、iRelationalDictionary2参数值)
位于Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteOnQuery(IRelationalConnection连接、iRelationalDictionary
2个参数值)
位于Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecutionQuery(IEnumerable`1 migrationCommands,IRelationalConnection)
位于Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(字符串targetMigration)
位于Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration,String contextType)
位于Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(操作)
ORA-01031:权限不足
ORA-06512:在第2行
因此,这里涉及的sql命令似乎是beginexecuteimmediate…
。我不太确定应该设置什么样的特权才能成功执行。你能看一下上面的错误信息,给我一些建议来正确设置我的用户帐户的权限吗?
谢谢
PS:显示我设置的所有权限的屏幕截图:
看起来只有当要创建的表不包含任何自动递增的主键时,
创建表
权限才有效
它真的很有趣