Saltar al contenido

Como DBA nos tenemos que encargar de la seguridad de nuestras Bases de datos.

Un ejemplo puede ser que la cuenta de usuario invitado este habilitada.

La cuenta de usuario invitado permite a cualquier persona sin un acceso de inicio de sesión relacionado con SQL acceder a la base de datos.

Para quitar todos los permisos simplemente ....

Vamos a la BD y ....

revoke connect to guest;

Así de sencillo.

No olvideis de compartir este y los casi 1000 artículos de este vuestro blog en vuestras redes sociales

Ya lo hemos visto con Powershell.

.http://www.mundosql.es/2017/06/19/creando-contrasenas-con-powershell/

Ahora toca con mi SQL Server

Ahi va el código

-- Generar Contraseñas
-- Juan Carlos Gilaranz Benito
-- www.mundosql.es

 

DECLARE @NewPass varchar(10)

Set @NewPass =cast((Abs(Checksum(NewId()))%10) as varchar(1)) +
char(ascii('a')+(Abs(Checksum(NewId()))%25)) +
char(ascii('A')+(Abs(Checksum(NewId()))%25)) +
left(newid(),5)

Print @NewPass

Fácil .....

 

Queremos auditar quien es el propietario de cada BD.

Lo podemos hacer una por una:

Botn derecho sobre BD y Propiedades.

Pero si tenemos mucha es un lio. Lo podemos hacer con T-SQL

-- Propietario BD
-- Juan Carlos Gilaranz Benito
-- www.mundosql.es

SELECT suser_sname(owner_sid) AS OwnerName, *
FROM sys.databases
ORDER BY name

 

La primera columna nos dice el propietario de la BD (en concreto el  login por el que entra en sql server).

Con esto sabremos de quien es la BD y si necesita cambiar de propietario por ejemplo.

Si tienes alguna duda, sugerencias, etc …. puedes entrar en el grupo de facebook:

https://www.facebook.com/groups/juankartips/

y

Ya lo hemos visto con sys.sysprocesses en:

Quien ha estado en nuestras base de datos en #SQLServer (1)

Ahora podemos ver algo parecido con sys.dm_exec_sessions.

SELECT login_name Login ,COUNT(session_id) AS Sesiones
FROM sys.dm_exec_sessions
GROUP BY login_name;

Aquí vemos números de sesiones.que tiene cada usuario

Si queremos ver todas

SELECT Session_id Sesion, status Estado, login_time Inicio, login_name Login, host_name Equipo, program_name Programa
FROM sys.dm_exec_sessions
ORDER BY login_time desc

Las que se están ejecutando

SELECT Session_id Sesion, status Estado, login_time Inicio, login_name Login, host_name Equipo, program_name Programa
FROM sys.dm_exec_sessions
where status like '%Running%'
ORDER BY login_time desc

o por usuario

SELECT Session_id Sesion, status Estado, login_time Inicio, login_name Login, host_name Equipo, program_name Programa
FROM sys.dm_exec_sessions
where login_name like '%juankar%'
ORDER BY login_time desc

Muchas veces queremos saber quien ha estado en nuestra base de datos para saber , por ejemplo, quien ha metido la zarpa.

Una de las forma de verlo es con sys.sysprocesses.

SELECT *
FROM sys.sysprocesses

Ahora vamos a ver  que usuario y  bases de datos estan relacionados

SELECT db_name(dbid) as BBDD, loginame as Login
FROM sys.sysprocesses
WHERE dbid > 0
GROUP BY dbid, loginame

Ahora vaos a ordenador por usuario y fecha ultima de que se ha realizado una acción

SELECT db_name(dbid) as BBDD, dbid as Conexion, loginame as Login, login_time Entrada, last_batch Ultima_Accion
FROM sys.sysprocesses
ORDER BY login ASC,last_batch DESC

Y por un usuario concreto y que ha tocado. Ya veremos como hacerlo de otra formas 😉

Un inicio de sesión es una credencial simple para acceder al SQL Server. proporcionando un nombre de usuario y contraseña.. Este nombre de usuario y contraseña generan unas credenciales. Por lo tanto, las credenciales son simplemente un nombre de usuario y una contraseña.

Ya vimos como hacerlo por Windows. Esta credencial hacerla con SQL Server se puede hacer  gráficamente o T-SQL.

Ahora vamos con SSMS.

Nos vamos a Login

Y rellenamos la ficha ....

Podemos elegir la BBDD.

En la pestaña de Roles

Puedes ver mas en:

http://www.mundosql.es/2016/01/03/los-roles-en-sqlserver/

http://www.mundosql.es/2016/01/21/los-distintos-roles-que-nos-podemos-encontrar-en-sqlserver/

Roles a nivel de bbdd y servidor:

https://msdn.microsoft.com/es-es/library/ms189121.aspx

https://msdn.microsoft.com/es-es/library/ms188659.aspx

Cada inicio de sesión puede tener un usuario en una o más bases de datos. Para eso esta User Mapping.

Damos al ok.

Ahora iremos a T-SQL.

 

Vamos a ver otro tema del Curso 20764 – Administering a SQL Database Infrastructure. En este caso cuando habla de la autenticación.

Según la Wikipedia: "es el acto o proceso de confirmar que algo (o alguien) es quien dice ser.".

Al instalar SQL Server podemos  elegir un Modo de autenticación para el motor de bases de datos. Usted puede elegir entre Windows y Mixto.

Autenticación de Windows

SQL Server comprueba el nombre de usuario proporcionado y la contraseña con los datos de usuarios de Windows.

Autenticación de SQL Server (modo mixto)

El modo mixto es la incorporación de la autenticación de SQL Server para la autenticación de Windows.

La Autenticación de SQL Server requiere inicio de sesión cuando se inicia la aplicación. El nombre de usuario y contraseña son almacenados en tablas de base de datos y por lo tanto son independientes de la autenticación de Windows.

Azure Active Directory

AAD le permite administrar identidades de usuarios para conexiones a base de datos de Azure SQL en un solo lugar.

Proximamente ... un indice a seguir de esta certificación y pequeños ejercicios. Vamosssss

 

Después de leer   el Curso 20764 - Administering a SQL Database Infrastructure,y 20765 - Provisioning SQL Databases que son los nuevos para la Certificación de 2016  para sacar el MCSA de Administración.

https://www.microsoft.com/es-es/learning/course.aspx?cid=20764

https://www.microsoft.com/eS-ES/learning/course.aspx?cid=20765

Me he animado  a estudiarlo y sacame por fin mi primer MCSA. Lo que pondré aquí son mis esquemas de estudio, mis practicas, etc .....

Lo que voy a hacer a partir de ahora es añadir y modificar artículos ya vistos en este blog. Este es una introducción.

Bueno, empezamos.

Cuando definimos Seguridad generalmente nos referimos a lo que alguien o algo pueda acceder a un recurso y a realizar una o más acciones en él.

Parar planear una solución de seguridad hay que tener en uenta que:

  • Hay que proporcionar a cada directorio/carpeta los permisos que realmente se necesiten.
  • Utilizar la herencia en elementos asegurables para reducir al mínimo el número de permisos para permitir el nivel de acceso.
  • Utilice grupos o roles, para crear una capa de abstracción entre los directorios/carpetas
    y permisos para acceder a asegurables.

Lo asegurables son lo que objetos que queremos asegurar en SQL Server.

Aquí os voy a ir dejando temas de esta certificación, aunque ya hay publicados muchos de ellos pero los ire poienedo aqui:

Descarga #SQLServer2016 Express, Developer y evaluación 180 dias

Instalación limpia de #SQLServer2016 Enterprise

Configurando el firewall de Windows (I)

Configurando el firewall de Windows (II)

Crear nuestra primera base de datos #SQLAzure con #Azure Resource Manager (#ARM)

Creación de una base de datos de #SQLAzure con SSMS

No entro en mi servidor de #SQLAzure, como solucionarlo

Conectando con el Management Studio a nuestra BBDD de #sqlserver de #azure

Conectar nuestra bbdd de #AzureSQL con #VisualStudio

Montar una segunda base de datos en #sqlazure

Para montar bases de datos de ejemplo en #SQLServer

Ver las imagenes predifinidas en #Azure de #SQLServer 2016 mediante #powershell

Securizando las conexiones en #SQLServer

Como nos autenticamos en #SQLServer

Logins en #SQLServer (1)

Y os recuerdo que …

Tenemos el siguiente diseño de tabla

En las siguientes tablas

Cada tabla tiene la cantidad de registros:

Aunque se que se puede hacer de otras formas, pero para esta vez voy a utilizar en es ocasión select e inseert to

Y verificamos que ...

Esta todo correcto ... voy a añadir una nueva tabla que corresponda a 2015 y después la vuelvo a unir.

La tabla final nos puede servir para muchas cosas y artículos a partir de ahora. Al turr´´on ....

Vamos a visualizar datos de forma adecuada dependiendo los datos.

Tengo una base de datos con las siguientes tablas:

Estoy montando un escenario BI de 5 años y quiero ver los registros que me van grabando y los que se han grabado. El resultado quiero que sea con separaciones de miles y millones.

Hacia tiempo que no escribía de SQL Server, espero volver a hacerlo mas regularmente.

Os recuerdo que cualquier duda, sugerencia que tengas pasate por el grupo de facebook:

https://www.facebook.com/groups/juankartips/

Y como siempre …

Una ez descargado e instalado.

A continuación

Buscar fichero

Ahora le damos a la flechita de empezar y ....... a darle caña.

Este examen me dice que hay 188 preguntas 😛

Y el precio de la licencia ....