SharePoint 2010. Iniciando la aventura!!!!

Por fin después de casi un año voy a retomar la aventura!!!

Así es después de 10 meses voy a retomar esta bitácora, por cuestiones que no viene al caso recordar tenía muy olvidado este pequeño sitio, el destino me ha llevado a trabajar muy duro en SharePoint 2010, desde hace poco mas de 7 meses estoy metido de lleno en el desarrollo para esta plataforma de colaboración empresarial.

Sigue leyendo

Consejos y trucos para Windows 2008 R2 Core

Usuarios y grupos
  • Crear usuario local o en dominio:
    net user <NOMBRE_USUARIO> /add [/dominio]
  • Crear un grupo local o en dominio:
    net localgroup <NOMBRE_GRUPO> /add [/dominio]
  • Agregar usuarios locales o en dominio a un grupo: net localgroup <NOMBRE_GRUPO> /add [/dominio] <USUARIO1> <USUARIO2> <NOMBRE_GRUPO>

Si deseas eliminar usuarios, grupos o usuarios asignados en grupos son los mismos comandos, pero en lugar del modificador /add lo cambiamos por /del.

Mejores Prácticas para ser un DBA SQL Server (Traducido de un Articulo de Brad McGehee)

Día a día

1. Compruebe los registros de eventos del S.O. y los registros de SQL Server para detectar eventos inusuales.
2. Verifique que todos los trabajos programados se han ejecutado correctamente.
3. Confirme que las copias de seguridad se han hecho y guardado con éxito a un lugar seguro.
4. Monitoree el espacio en disco para asegurarse de que sus servidores de SQL no se quedarán sin espacio en disco. Para un mejor rendimiento, todos los discos deben tener 15% o más de espacio libre.
5. A lo largo del día, haga un seguimiento periódico de rendimiento utilizando Monitor de sistema y de perfiles / Traza de SQL.
6. Monitorear regularmente e identificar problemas de bloqueo.
7. Mantenga un registro de los cambios que realice a los servidores, incluyendo la documentación de los problemas de rendimiento a identificar y corregir.
8. Crear alertas de SQL Server para que le avise de posibles problemas, y las envíe por mail. Tomar las medidas necesarias.
9. Regularmente restaure copias de seguridad en un servidor de prueba para verificar que realmente los puede restaurar. No es necesario para restaurar todas las copias de seguridad todos los días, pero debiera hacerlo a menudo para asegurarse de que usted tiene buenas copias de seguridad.
10. Tómese su tiempo para aprender algo nuevo como un DBA para promover su desarrollo profesional.

Instalación

1. Siempre documente las instalaciones de modo completo, aun cuando parezca redundante, esto hará que las instancias de SQL Server se pueden reproducir fácilmente en caso de emergencia.
2. Si es posible, instalar y configurar todas las instancias de SQL Server de una manera consistente, de la misma forma , basándose en las normas pre-acordadas de su organización.
3. No instale los servicios de SQL Server que no se utilizan, como Microsoft indexación de texto completo, Reporting Services o Analysis Services.
4. Para obtener el mejor rendimiento de SQL Server, detenga todos los servicios del sistema operativo que no son necesarios.
5. Para un óptimo rendimiento de SQL Server, no ejecutar al SQL Server junto con ninguna otra aplicación.
6. Para obtener el mejor rendimiento I / O, busque los archivos de base de datos (. mdf) y archivos de registro (. ldf) en discos separados para aislar a los patrones de acceso a disco.
7. Si tempdb se utiliza en gran medida, pongalo en un disco aparte.
8. No instale SQL Server en un controlador de dominio.
9. Asegúrese de que SQL Server se instala en una partición NTFS.
10. No utilice NTFS con cifrado de archivos de datos (EFS) y ni compresión de datos sobre el disco de la base de datos de SQL Server y los archivos de registro.

Actualizar

1. Ejecute el Upgrade Advisor de SQL Server antes de actualizar. Haga los cambios necesarios antes de realizar la actualización.
2. Realizar una actualización de prueba antes de actualizar los servidores de producción. Y no se olvide de probar las aplicaciones con la nueva versión también.
3. Antes de actualizar, asegúrese de tener un plan para revertir los cambios en caso que la actualización sea problemática.
4. No actualizar clústeres de SQL Server en su lugar. En cambio, a reconstruirlos en un nuevo hardware.
5. Si actualiza desde una versión anterior de SQL Server, debe actualizar todas las estadísticas en todas las bases de datos. Esto se debe a que las estadísticas no se actualizan automáticamente durante el proceso de actualización.

Seguridad

1.    Asegure la seguridad física de cada Servidor SQL , previniendo que cualquier usuario no autorizado pueda acceder físicamente a sus servidores.
2.    Instalar solamente las mínimas y necesarias nettwork libraries y network protocols en sus instancias SQL
3.    Minimize el número de usuarios sysadmins con acceso a SQL Server.
4.    Como DBA, logueesé como sysadmin solo cuando realmente lo necesite. Cree cuentas específicas para DBAs para que puedan acceder a SQL Server cuando no necesiten privilegios sysadmin.
5.    Asigne a la cuenta “sa” una password realmente compleja y no la use nunca para loguearse a SQL Server. En vez de eso use una cuenta Windows Authentication para acceder SQL Server como sysadmin.
6.    Dele a los usuarios los mínimos permisos necesarios que le permitan a ellos realizar su trabajo.
7.    De ser posible, use stored procedures o views para el acceso a los datos en vez de dejarlos acceder directamente a las tablas.
8.    De ser posible, use Windows Authentication logins en vez de SQL Server logins.
9.    Use strong passwords (combinación de mayúsculas, minúsculas, numeros y caracteres especiales) para todos los SQL Server login.
10.    No le asigne permisos al rol de base de datos “public”
11.    Remueve Logins IDs que ya no necesitan acceder a SQL Server apenas los detecte.
12.    Deshabilite el usuario “guest” en cada base de datos usando REVOKE CONNECT FROM GUEST.
13.    No use “cross database ownership chaining” si no es realmente necesario.
14.    Nunca habilite permisos a xp_cmdshell a los usuarios que no son sysadmin.
15.    Eliminar las bases de ejemplo (adventureworks, pubs, northwind) de todas las instancias de producción.
16.    Usar Windows Global Groups, o SQL Server Roles para manejar grupos de usuarios con similares permisos.
17.    No debería crear ni permitir crear network shares en servidores SQL Server.
18.    Configurar login auditing , de esta manera se puede ver quienes intentaron loguearse y los intentos fallidos de login.
19.    No use jamás la cuenta sa ni login ids que sean sysadmin como cuentas de acceso desde aplicaciones.
20.    Asegurese que sus servidores están detrás de un firewall y no están expuestos directamente a internet.
21.    En SQL Server 2005 y previos, remover el grupo de BUILTIN/Administrators para evitar que los administradores locales del servidor puedan acceder a SQL Server. En SQL Server 2008, el grupo BUILTIN/Administrators group no existe en forma predeterminada.
22.    Ejecute cada servicio SQL Server bajo una cuenta de dominio diferente.
23.    Dele a las cuentas asignadas a los servicios SQL Server los minimos permisos que le permitan al mismo ejecutarse de la manera correcta. En la mayoría de los casos los permisos de un administrador local no son necesarios y menos aún los permisos de un administrador de dominio.
24.    Cuando use queries distribuidas use linked servers en vez de remote servers. Remote servers están solo por backward compatibility.
25.    No navegue internet desde una instancia de producción de SQL Server.
26.    En vez de instalar antivirus/antispyware en un SQL Server, realice scaneos desde un servidor remoto y solo cuando la actividad del servidor SQL no sea tan alta.
27.    Agregue los service packs, tanto de SQL Server com de sistema operativo apenás estén disponibles.
28.    Considere la posibilidad de encriptar los backups con herramientas como Red Gate SQL Backup Pro u otras.
29.    Solo habilite las trazas de “C2 auditing” o “Common Criteria compliance” cuando sea realmente necesario, porque sobrecargan el servidor si están habilitadas.
30.    Considere seriamente ejecutar un SQL Server security scanner para detectar si hay huecos de seguridad en sus servidores, tanto a nivel sistema operativo como servidor de base de datos. http://searchsqlserver.techtarget.com/feature/SQL-Server-security-test-checklist
31.    Considere habilitar SSL or IPSEC para las conexiones entre sql server y los clientes.
32.    Si está utilizando SQL Server 2005/2008, habilite password policy checking.
33.    Si está usando SQL Server 2008 en un entorno de alta seguridad, considere implementar TDE, Transparent Data Encryption para proteger los datos de su servidor.
34.    Si utiliza SQL Server 2005, no use SQL Server Surface Area Configuration para desbloquear características que nunca se utilizan y que pueden traer solamente problemas de seguridad.
35.    Si está usando SQL Server 2005/2008 y crea endpoints, solo habilite permisos grant CONNECT a los logins que realmente necesitan acceder esos endpoints. Explicitamente deniegue (deny) CONNECT permissions a los endpoints que no son necesarios para los usuarios.

Mantenimiento de Jobs

1.    Evite ejecutar jobs en el mismo horario. Preferentemente cada job debe ejecutarse en su propio horario.
2.    Cuando cree jobs asegurese de incluir intercepción de errores, de loguear la actividad del job y de establecer alertas (mails por ejemplo) para asegurarse de saber al momento de cualquier fallo que pudiera ocurrir.
3.    Cree un login específico con el solo propósito de ejecutar jobs y asignele a dicho login todos los jobs.
4.    Si su job incluye código Transact-SQL, asegurese que está optimizado para que se ejecute correctamente.
5.    Periodicamente (diario, semanal, mensual) reconstruya o reorganice los índices de sus bases de datos para remover la fragmentación logica y aprovechar mejor el especio en disco.
6.    Periódicamente y como parte de sus tareas de mantenimiento, ejecute DBCC CHECKDB en todas sus bases de datos para comprobar su integridad y detectar eventuales problemas.
7.    Evite ejecutar comandos DBCC en los horarios donde se da la mayor carga de trabajo en sus servidores. Estos comandos son altamente requirientes en términos de recursos y afectan la performance.
8.    Si usted reinicia muy raramente el servicio SQL Server service, se va a encontrar con que el log de SQL Server se pone muy grande y toma mucho tiempo para cargar y ser mostrado. Usted puede cerrar el log error actual y crear uno nuevo ejecutando sp_cycle_errorlog o DBCC ERRORLOG. Establezca esto como un job semanal.
Haga un script de todos los jobs y guarde esos scripts en un lugar seguro por si necesita en algun momento reconstruir los servers.

Fuente.

Enviando eventos de Windows Server 2008 R2 por correo.

Aquello que administran servidores, conocen la importancia de los archivos de registro o bitácora (log’s), si son importantes en nuestros equipos de escritorio, a nivel de servidor son de uso vital!!!!

Sea cual sea el sistema operativo del servidor, los registros de eventos: errores críticos y fatales, advertencias e información nos pueden dar la pista de que anda mal en nuestros equipos o que todo funciona de manera correcta.

Básicamente el registro de eventos en los servidores son los «chismosos de la colonia».

Sigue leyendo

Script para enviar correo electrónico.

El siguiente script nos sirve para enviar un correo electrónico por medio de PowerShell.

Clear-Host

 

#Datos para el envío de correo.

$EmailFrom=«Registro de eventos<correo@dominio.com>»

$EmailTo=«Cuenta del Administrador<correoAdministrador@dominio.com>»

$SMTPServer=«[SERVIDOR_SMTP]»

$SMTPAuthUsername=«[USUARIO]»

$SMTPAuthPassword=«[CONTRASEÑA]»

#Terminan los datos del envío de correo.

 

 

#Funcion para envío de correo.

functionenvio_correo {

$mailmessage=New-Objectsystem.net.mail.mailmessage 

$mailmessage.from = ($emailfrom

$mailmessage.To.add($emailto)

$mailmessage.Subject =$emailSubject

$mailmessage.Body =$emailbody

$mailmessage.IsBodyHTML =$true

$SMTPClient=New-ObjectNet.Mail.SmtpClient($SmtpServer, 25)  

$SMTPClient.Credentials =New-ObjectSystem.Net.NetworkCredential(«$SMTPAuthUsername», «$SMTPAuthPassword»

$SMTPClient.Send($mailmessage)

}

#Termina la función de correo.

  

      # Se arma el asunto del correo.

      $EmailSubject=«Asunto « 

 

      #Se arma el cuerpo del correo.

      $EmailBody=«Cuerpo del correo. «

 

      &envio_correo

 

 

Saludos.

Respaldos de SQL Server 2008 en unidades de red

En nuestro ambiente de desarrollo tenemos una infraestructura montada en servidores virtuales, utilizando Hyper-V, en una de las máquina tenemos instalado Windows Server 2008 R2 y SQL Server 2008 R2 Edición Estandar,
dentro de este servidor de base de datos tenemos varias instancias creadas, las cuales tenemos que respaldar, lo que decidimos hacer es mandar estos respaldos al servidor host, por medio de una unidad de red.

Sigue leyendo

Gracias a Dios es viernes!!!!!

Aquí les dejo una romántica carta de amor jarocho!!!

CARTA JAROCHA
Una Carta Jarocha de Amor…

Apasionada y hóndamente la quiero a usted jo-
ven y hermosa, y como es natural yo deseo proce-
der con prontitud y eficacia a fin de pre-
sentarla luego en el altar de la Iglesia y no enga-
ñarla vilmente, pues pienso que usted es la mas pu-
ra y mujer inimitable de la mujer buena y cas-
ta que pudo haber existido.
Asi mismo deseo depositar en usted el se-
creto de mi alma, e impedir que mis venas se que-
men con ardiente pasión y después de haber for-
malizado nuestras relaciones y haber comu-
nicado a su mamá y hermanas quedará mi ver-
dadera pasión correspondida, a fin de que la ha-
ga feliz con tanta pasión.
La verdad le digo, que el mas afortunado cu-
pido mirándonos dichoso con tan ardiente anhe-
lo envidiaría nuestra dicha; pues créame que co-
nocer la felicidad matrimonial que desea toda mu-
jer es lo mas importante en la vida.

Su enamorado

Contestación a la carta…

Al recibir tu carta me sorprendí, pen-
sándolo bien, eres muy tonto y por eso te
dejo, te imaginaste que me ibas a co-
nocer mas; yo valgo mucho como mu-
jer, espero que comprendas que for-
malizar estas relaciones; no se podrán comu-
nicar, asi como asi; no se puede.

Asi mismo te hago saber que no soy tan pu-
ritana, pero pienso que tampoco ninguna ton-
ta. Mis hermanas me dijeron que tu ver-
dadera intención hacia nosotras no nos hala-
ga, es muy escasa; y que no sirve para for-
mar un hogar. Eso te lo voy a comu-
nicar las veces que yo lo desee.

Yo quiero un hombre fuerte que sepa cu-
idar de mi y que posea todo un amor fami-
liar todos los dias del año y en varias posi-
bilidades para triunfar en la vida y en situa-
ciones por difíciles que sean. Creo que co-
nocer la dicha conyugal que desea toda mu-
jer, es lo mas importante en la vida.

Tu ex…

Que romántico!!!! Han llegado a escuchar aquello de leer entre líneas?? buenos ahora vuelvan a leerla pero saltando una linea, es decir leen la línea 1 y saltan a la 3 y así consecutivamente, igual en la contestación.

Subneteo (Método sencillo para el cálculo de subredes)

Antes de comenzar con la tareas usted debe tener 2 datos básicos:

  • Cuál es el número total de subredes que se requieren, incluyendo la consideración del posible crecimiento de la red.
  • Cuál es el número de nodos que se preven en cada subred, teniendo en cuenta también en este caso las consideraciones de expansión y crecimiento.

A partir de aquí, responda estas 6 preguntas básicas:

  1. ¿Cuántas subredes?
  2. ¿Cuántos nodos por subred?
  3. ¿Cuáles son los números reservados de subred?
  4. ¿Cuáles son las direcciones reservadas de broadcast?
  5. ¿Cuál es la primera dirección de nodo válida?
  6. ¿Cuál es la última direccion de nodo válida?

Con lo que debe obtener 6 respuetas:
Ejemplo: red 192.168.1.0 máscara 255.255.255.224

1. La cantidad de subredes utilizables se calcula tomando como base la cantidad de bits de la porción del nodo que se toman para generar subredes, y aplicando la fórmula siguiente:

2[bits de subred] – 2 = subredes utilizables

ejemplo:

23 – 2 = 6

2. La cantidad de direcciones de nodo útiles que soporta cada subred, surge de la aplicación se la siguiente fórmula que toma como base la cantidad de bits que quedan para identificar los nodos:

2[bits de nodo] – 2 = nodos

ejemplo:

25 – 2 = 30

3. La dirección reservada de la primera subred útil surge de restar a 256 el valor decimal de la porción de la máscara de subred en la que se define el límite entre subred y nodo:

256 – [máscara] = [primera subred útil y rango de nodos]

Las direcciones de las subredes siguientes surgen de seguir sumando la misma cifra.

ejemplo:

256 – 224 = 32

192.168.1.0 subred 0
192.168.1.32 subred 1 – primer subred útil
+ 32 192.168.1.64 subred 2
+ 32 192.168.1.96 subred 3
+ 32 192.168.1.128 subred 4
+ 32 … … …

4. Las direcciones reservadas de broadcast se obtienen restando 1 a la dirección reservada de subred de la subred siguiente:

ejemplo:

32 – 1 = 31 192.168.1.31 subred 0
64 – 1 = 63 192.168.1.63 subred 1
96 – 1 = 95 192.168.1.95 subred 2
128 – 1 = 127 192.168.1.127 subred 3
… … …

5. La dirección IP del primer nodo útil de cada subred se obtiene sumando uno a la dirección reservada de subred:

reservada de subred + 1 = primer nodo utilizable

ejemplo:

32 + 1 = 33 192.168.1.33 primer nodo subred 1
64 + 1 = 65 192.168.1.65 primer nodo subred 2
96 + 1 = 97 192.168.1.97 primer nodo subred 3
128 + 1 = 129 192.168.1.129 primer nodo subred 4
… … …

6. La dirección IP del último nodo útil de cada subred se obtiene restando 1 a la dirección reservada de broadcast:

63 – 1= 62 192.168.1.62 último nodo subred 1
95 – 1 = 94 192.168.1.94 último nodo subred 2
127 – 1 = 126 192.168.1.126 último nodo subred 3
… … …

Sintetizando:

Con esa máscara de subred se obtienen 6 subredes útiles, cada una de ellas con una capacidad máxima de 30 nodos (32 direcciones IP):

# Subred Primer nodo útil Último nodo útil Broadcast
0 192.168.1.0
1 192.168.1.32 192.168.1.33 192.168.1.62 192.168.1.63
2 192.168.1.64 192.168.1.65 192.168.1.94 192.168.1.95
3 192.168.1.96 192.168.1.97 192.168.1.126 192.168.1.127
4 192.168.1.128 192.168.1.129 … … … … … …

Crear bases de datos y usuarios.

Estos son los apuntes para dar de alta una base de datos y un usuario que tenga acceso a la misma.

servidor:usuario # mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.45 Source distribution

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql> create database MiBase;
Query OK, 1 row affected (0.00 sec)

Acceso desde cualquier host:
mysql> GRANT ALL PRIVILEGES ON MiBase.* TO UsuarioMiBase@»%» IDENTIFIED BY ‘ContraseñaUsuarioMiBase’ WITH GRANT OPTION;

Acceso desde el localhost:
mysql>GRANT ALL PRIVILEGES ON MiBase.* TO UsuaioMiBase@localhost IDENTIFIED BY ‘ContrseñaUsuarioMiBase’ WITH GRANT OPTION;

Para crear un superusuario que ingrese de cualquier host:
mysql> GRANT ALL PRIVILEGES ON *.* TO OtroSuperUsuario@»%» IDENTIFIED BY ‘ContraseñaOtroSuperUsuario’ WITH GRANT OPTION;

Acceso desde el localhost:
mysql>GRANT ALL PRIVILEGES ON *.* TO OtroSuperUsuario@localhost IDENTIFIED BY ‘ContraseñaOtroSuperUsuario’ WITH GRANT OPTION;

Finalmente aplicamos los nuevos permisos a nuestros usuarios con:
mysql>flush privileges;

Y listo.

Trucos, truquitos y trucotes.

Para conocer el host de la maquina
$hostname

Para conocer el kernel y host de una maquina
$uname -a

Para conocer los procesos activos en el sistema:
$ps -fea

Para conocer un proceso en particular:
$ps -fea | grep [proceso]

Para conocer cuantos usuarios hay conectados en el momento:
$w

Para enviar un archivo a otra maquina que conoces el usuario y contraseña:
$scp [archivo] [usuario]@[host]:

Para crear enlaces de programas que se ejecuten:
$ln -s [directorio/programa/fuente] /usr/bin
Para poder generar el enlace y que se inicie desde que levanta el equipo
ln -s [directorio/programa/fuente] /etc/init.d

Y despues con Yast /Sistema/Editor de niveles de ejecución modificamos los niveles que se desean para nuestra aplicación.