miércoles 21 de octubre de 2009

Tablas Bloqueadas

A pedido del profesor Chia
Esta es la consulta que se utilizar para ver si existen tablas Bloqueadas

database sysmaster;
select
syssessions.username[1,5],
hostname , tabname[1,15] ,owner
from syslocks,syssessions
where syslocks.owner = syssessions.sid
# and syssessions.username = "USUARIO"
# and dbsname = 'BASE DE DATOS'
order by 4

Los Campos
Nombre de usuario, Nombre de la Maquina,Tabla Bloqueada, el ID de la conexión
Puede también hacer filtrados para un usuario y una base de datos especifica

adicionalmente pueden ver que realmente esta haciendo ese usuario y como esta bloqueando la tabla con el comando

onstat -g sql [ID de la conexion]

pero necesitas permisos de Administrador.

salu2

lunes 28 de septiembre de 2009

Simulando ser produccion en Informix

Queridos Colegas.
Esto es interesanticimo algunos desarrollos como los Integracion Services de SQL son iniciados con una conexion a la base de datos y hacer un cambio en la cadena de coneccion al momento de llevarlo a produccion es un poco moroso y cansador y mas si ya tienes mas de 50 paquetes. por eso tenemos 2 soluciones
  • Abrir las puertas de Produccion a desarrollo :(
  • Poner un alias a la instancia del desarrollo que tenga el nombre de produccion. :)
Elegimos la segunda opcion

En el archico onconfig situado en /usr/informix/etc se pone
DBSERVERALIASES = [nombre de la Alias]
y en el sqlhost situado en /usr/informix/etc se adiciona una linea

[Nombre del Alias] onsoctcp [nombre del Servidor desarrollo] puerto de atencion (por lo general es 1525)

Ejemplo

bgdb00 onsoctcp bgsc07 1525

eso es todo y ya tiene un sinonimo del produccion en desarrollo.
espero que se entienda

salu2

Me olvide se tiene que bajar y subir el motor para que funcione.

jueves 21 de mayo de 2009

Conexion Remota SQL Express

De parte de Nelcy

Los Pasos Son:

1.- Habilitar los servicios de Sql Expres y Explorador de Sql Server
con la herramienta Sql server Configuration Manager

2.- Habilitar la conexion remota usar TCP/IP y canalizaciones con Nombre
luego bajar y subir el servicio con la herramienta Configuración de superficie para servicios y conexiones

Salu2

martes 31 de marzo de 2009

Para que nunca mas se me olvide .login

Al momento de crear un usuario en UNIX también se crea el .login o el .profile (dependiendo del shel que utilices) si quieres cambiar algo para que tus usuarios ya nazcan con alguna particularidad puedes manipularlo en este archivo de configuración


/usr/lib/security/mkuser.sys

este se encarga de crear el .login y/o el .profile

Salu2


miércoles 14 de enero de 2009

script para desbloquear usuarios del AD

Para estos dias de bloqueo......
Esto lo pillamos en la Web
pero por si lo eliminan lo copie a continuacion.

Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject" objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT distinguishedName FROM 'LDAP://dc=bg,dc=com,dc=bo' WHERE objectCategory='user' AND lockoutTime>=1"
Set objRecordSet = objCommand.Execute ' Si el recordset esta vacio es porque no hay usuarios bloqueados.
CANTIDAD = objRecordSet.RecordCount
if CANTIDAD <> 0 then
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
DN = objRecordSet.Fields("distinguishedName").Value
set objUSER = getobject("LDAP://" & DN)
objUser.IsAccountLocked = false
objUSER.SetInfo
objRecordSet.MoveNext
loop end if

Lo copian a un archivo con extencion .vbs y lo ejecutan


Salu2 

martes 9 de diciembre de 2008

Segundos que pueden servir

Quería Pasarles esto hace arto pero los últimos conflictos de Nov y Dic Negro me hicieron olvidarlo.

En el 07 tengo un script que se llama "cona" que si lo miran nos cambia de instancia y levanta el isql. si lo ejecutan notaran que la levantada del isql es segundos mas rápido que lo normal, y eso es porque se esta utilizando el parámetro -s que suprime los mensajes que no son muy importantes. También se pueden poner otros parámetros para ingresar directo a una opción específica. 

Ejemplo

Para ingresar velozmente ponemos el -s y para ingresar directo a Form ponemos -fr y el nombre del form

 isql -s [Base de datos]  -fr [nombre de Form]

 Ejemplo (valido solo para bg  en el 00 user readonly)

 isql -s tbase -fr gbpmtSC

Pueden crearse su propio script para ingresar directo a las opciones que mas frecuentemente utilizan y no olviden darle permisos de ejecución con un

chmod 755 [nombre Script]

 

Salu2 

martes 25 de noviembre de 2008

Load desde windows

Caso de la vida real

Problema.-
Necesitamos cargar unos 70 mil registros en promedio, pero hacer un bucle insertando esa cantidad de registros en un poco lento. Lo ideal es igualar al tradicional LOAD FROM [archivo] INSERT INTO [Tabla] pero es imposible.

Solucion tomada (seguro que hay otras pero esta nos sirvio)
Herramientas
  1. Desde un programa windows podemos ejecutar un procedimiento almacenado :D
  2. Desde un procedimiento almacenado NO se puede ejecutar el LOAD :(
  3. Desde un procedimiento almacenado Se puede correr comandos del sistema :D
  4. Tanto el ISQL como es DBACCESS puedes ejecutar instrucciones sql que se encuentren en un archivo :D
Entonces....

se creo un procedimiento + o - asi

create procedure CargarDatos()

SYSTEM ' dbaccess [base de datos] [Archivo.sql]

end procedure

y el archivo Datos.sql contiene

load from datos.unl insert into [tabla]

SEGURIDAD
mmmmmmmm Pues Sí Estamos dejando un agujero muy grande de seguridad, imaginense si en vez de load cambian el contenido del archivo sql y ponen un drop database uuuuuyyyyyyy eso si doleria.

pues tiene que tener mucho cuidado y quitar los permisos de escritura en ese archivo y dejarlo en solo lectura

chmod 444 Datos.sql

que nadie lo modifique ni siquiera el dueño también serviría la seguridad de base de datos para q solo el usuario que ejecute este proc tenga permisos solo en la tabla afectada.

salu2