Un cliente tiene usuarios creados en modo de autenticación "Base de datos" pero al momento de que esos usuarios ingresan, el sistema no valida la contraseña, quiere decir que el usuario puede ingresar una contraseña cualquiera que igualmente podrá ingresa al sistema, que se puede hacer en este caso? Desde ya, gracias por sus respuestas. asked 15 May '15, 15:47 jdelcid |
Creo que los roles EvodataRol y EvoconfigRol ya tienen los permisos por lo que la creacion deberia de ser: CREATE USER "ETUCHEZ" IDENTIFIED BY "ETUCHEZ" DEFAULT TABLESPACE "EVODATA" TEMPORARY TABLESPACE "TEMP"; -- ROLES GRANT CONNECT, "EVODATAROL" TO "ETUCHEZ"; ALTER USER "ETUCHEZ" DEFAULT ROLE CONNECT, "EVODATAROL"; Y con la creacion de los sinonimos podrian generar un script que los contenga, esto se puede hacer con el siguiente select ejecutado con un usuario SYSTEM o que tenga privilegios para ver todo: select 'CREATE OR REPLACE SYNONYM '||object_name ||' for Evodata.' ||object_name||';' from all_objects where owner = 'EVODATA' and object_type in ('TABLE','VIEW','PROCEDURE','FUNCTION','PACKAGE') union all select 'CREATE OR REPLACE SYNONYM '||object_name ||' for Evoconfig.' ||object_name||';' from all_objects where owner = 'EVOCONFIG' and object_type in ('TABLE','VIEW','PROCEDURE','FUNCTION','PACKAGE') El resultado de esto deberia de ser lo que se debe de ejecutar con cada usuario que se cree. Esta es mi opinion, no se podra ser validado por El Salvador answered 16 May '15, 17:04 FerdyB |
Para que esto funcione, el string de conexión "DatabaseUsers" tiene que tener un "{0}" en el usuario y un "{1}" en el password, seguramente al configurarlo le cayeron encima. Podrías chequear eso y arreglarlo? Debería funcionar bien asi.. answered 15 May '15, 15:57 sabanito ♦♦ |
Aplique los cambios que me indicaste pero al probarlo nuevamente me mostró este mensaje de error en todas las pantallas de Evolution, se me habia olvidado comentar que el cliente tiene base de datos oracle Aseinfo.Infrastructure.Base.Exceptions.ValueListExecutionException: Hubo un error al ejecutar una Lista de Valores (CompaniaGruposAutorizadasParaSeleccionar). Este error ya fué registrado en la bitácora. Favor notificar al equipo técnico. ---> Oracle.ManagedDataAccess.Client.OracleException: ORA-00942: la tabla o vista no existe at OracleInternal.ServiceObjects.OracleCommandImpl.VerifyExecution(OracleConnectionImpl connectionImpl, Int32& cursorId, Boolean bThrowArrayBindRelatedErrors, OracleException& exceptionForArrayBindDML, Boolean& hasMoreRowsInDB, Boolean bFirstIterationDone) at OracleInternal.ServiceObjects.OracleCommandImpl.ExecuteReader(String commandText, OracleParameterCollection paramColl, CommandType commandType, OracleConnectionImpl connectionImpl, OracleDataReaderImpl& rdrImpl, Int32 longFetchSize, Int32 lobPrefetchSize, OracleDependencyImpl orclDependencyImpl, Int64[] scnForExecution, Int64[]& scnFromExecution, OracleParameterCollection& bindByPositionParamColl, Boolean& bBindParamPresent, Boolean isDescribeOnly, Boolean isFromEF) at Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior) at Oracle.ManagedDataAccess.Client.OracleDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) at Microsoft.Practices.EnterpriseLibrary.Data.Database.DoLoadDataSet(IDbCommand command, DataSet dataSet, String[] tableNames) at Microsoft.Practices.EnterpriseLibrary.Data.Database.LoadDataSet(DbCommand command, DataSet dataSet, String[] tableNames) at EntLibContrib.Data.ManagedOdpNet.OracleDatabase.LoadDataSet(DbCommand command, DataSet dataSet, String[] tableNames) at Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteDataSet(DbCommand command) at EntLibContrib.Data.ManagedOdpNet.OracleDatabase.ExecuteDataSet(DbCommand command) at Aseinfo.Infrastructure.Services.ValueListService.GetValueListResult(ValueList list, IEnvironmentVariables environmentalVariables, IParameter[] parameters) in c:VH4InfrastructureServicesValueListsValueListService.cs:line 139 --- End of inner exception stack trace --- at Aseinfo.Infrastructure.Services.ValueListService.GetValueListResult(ValueList list, IEnvironmentVariables environmentalVariables, IParameter[] parameters) in c:VH4InfrastructureServicesValueListsValueListService.cs:line 208 at Aseinfo.Infrastructure.Common.Extensions.EntryPoints.MetadataEntryPoint.GetValueList(String codigo, String controllerArea, String controllerName, Boolean validateValueListInController, IParameter[] parameters) in c:BuildAgentwork08d469cc106b504InfrastructureCommonExtensionsEntryPointsMetadataEntryPoint.cs:line 187 at Aseinfo.VH4.UI.Web.Controllers.CommonController.GetGruposYCompaniasParaSeleccionar(String controllerArea, String controllerName) in c:VH4VH4UIWebControllersCommonController.cs:line 865 answered 15 May '15, 19:03 jdelcid |
Este error se da porque el usuario que configuraste no tienen permisos para ver los objetos de la base de datos. La situación es que si querés utilizar usuario de base de datos, este usuario debe estar agregado a lo roles de seguridad de Evolution. answered 15 May '15, 20:02 Fernando Paz ♦♦ Como es Oracle, tendrías qeu crear sinónimos privados en el esquema del usuario en cuestión hacia los objetos de la EVODATA y la EVOCONFIG. ¿Porque quieren usar usuarios de base de datos?
(15 May '15, 20:05)
sabanito ♦♦
Fernando, fíjate que ya se le asignaron los permisos al usuario y sigue con el inconveniente.
(15 May '15, 22:08)
jdelcid
|
Lo que debería hacer es lo siguiente: Debe existir un ROL de base de datos que tenga los accesos a todos los objetos de la EVODATA y la EVOCONFIG. Ese rol se le da acceso a cada usuario de base de datos. Luego deben existir sinóminos (pueden ser privados o públicos) para que cuando el sistema haga select a la EXP_EXP_EXPEDIENTES, la base de datos haga la conversión al EVODATA.EXP_EXP_EXPEDIENTES. Lo más sencillo es que sean sinónimos públicos, pero si por seguridad no lo quieren hacer, entonces es tarea de la persona que crea el usuario (el administrador de la base de datos) de crear los sinónimos privados. answered 15 May '15, 22:19 Juan Carlos Soria |