requerimientos - ¿Cómo revocar el permiso del usuario administrador de Windows desde DB2?
db2 tutorial (5)
En las ventanas de IBM DB2 v.9, cuando alguien se conecta a la base de datos por el servidor / usuario administrador, la base de datos DB2 automáticamente aceptará y otorgará todos los permisos a este usuario. Pero, en algún caso, el administrador del servidor del entorno no necesita ver todos los datos en la base de datos. Entonces, ¿cómo evitar el uso del administrador conectarse a la base de datos?
Umm ... Por muchas veces trato de revocar con este comando pero cuando me conecto a la base de datos por la cuenta de Administrador, DB2 automáticamente otorgará permiso al Administrador nuevamente.
Intentaré de nuevo para asegurarme.
En 9.5 y anteriores esto no sería posible porque la cuenta bajo la cual se ejecuta su instancia es SYSADM. Además, el administrador puede restablecer al menos las contraseñas de cuentas locales y obtener acceso a ellas, lo que hace que cambiar la cuenta del propietario de la instancia sea inútil.
Sin embargo, a partir del 9.7, el propietario de la instancia ya no tendrá acceso a los datos. Una opción es actualizar a 9.7. Además, puede configurar una cuenta AD para las conexiones que utilizan sus aplicaciones. El administrador local no necesariamente puede cambiar esas credenciales.
Aún así, el administrador finalmente tiene acceso a los archivos de la base de datos (normalmente no encriptados). En su mayoría puede mejorar el aspecto administrativo de la seguridad.
En Windows, el parámetro de configuración del gestor de bases de datos SYSADM_GROUP
controla quién tiene la SYSADM
en el nivel de instancia. Cuando SYSADM_GROUP
está en blanco (como es el valor predeterminado en Windows), DB2 utiliza de manera predeterminada el grupo Administradores en la máquina local.
Para solucionar esto, puede crear un nuevo grupo en Windows y luego modificar el valor de SYSADM_GROUP
para usar este nuevo grupo. Asegúrese de que la ID con la que se ejecuta el servicio de DB2 pertenece a este nuevo grupo. Después de realizar este cambio, los miembros del grupo Administradores ya no tendrán la autoridad SYSADM
.
Como afirma Kevin Beck, también puede considerar restringir la autoridad CONNECT
en las bases de datos, porque de manera predeterminada, el privilegio CONNECT
se otorga a PUBLIC.
No creo que sea posible en circunstancias normales, simplemente porque el Administrador está en el grupo sysadm
.
Las opciones que puedo pensar (pero no he intentado) incluyen:
- Configurar el grupo sysadm en otra cosa ("db2 update dbm cfg using sysadm_group blah"). Consulte los documentos para advertencias y errores al hacer esto, ya que estoy seguro de que hay algunos.
- Deje de usar la autenticación del sistema operativo. Use un complemento de seguridad diferente (solo 8.2 y superior). Esto movería la autenticación y, por lo tanto, los grupos a una nueva ubicación (por ejemplo, un servidor LDAP). Entonces simplemente no agrega Administrador a la nueva ubicación, y especialmente no agrega Administrador al grupo sysadm nuevamente.
Por defecto, las bases de datos DB2 se crean con la autorización CONNECT
otorgada al público. Si quiere restringir la conexión de algunos usuarios, debe hacer
GRANT CONNECT ON DATABASE TO <user1>, <user2>, ...
Luego revoque la autorización CONNECT de PUBLIC
REVOKE CONNECT ON DATABASE FROM PUBLIC