miércoles, 30 de octubre de 2013

SQL Server Windows Authentication with another DOMAIN\USER

Sometimes, there are people who needs to work with SQL Server and Windows authentication, but they are external employees and their notebooks are loggued into different domain.

Example:

SQL Server from Domain XXX
External Employee with PC from Domain YYY
External User Account of XXX Domain logged with YYY Domain.

Trying left shift + right button mouse and select execute SSMS like another user.
This options doesn't work.

Trying to execute Command runas /netonly /user:XXX\User SSMS.exe
Then type the correct Password.
When SSMS is open, select windows authentication.
Trying this one, works fine.

You can check your login account with this sentence select suser_name();

It's XXX\External Account User .

I hope it can help you.

jueves, 25 de julio de 2013

Shared.com ofrece 100GB gratis en la nube

Buena opción para obtener más almacenamiento de forma gratuita.

100GB Gratis de almacenamiento en Shared

martes, 18 de junio de 2013

Cumulative update package 7 for SQL Server 2008 R2 SP2

There is an issue with the SQL Server Database engine components of original Cumulative Update 6 package (CU6). Microsoft release a fix to all servers with CU6 installed, in order to repair the error. (Index corruption ocurred).

There is a COD (Critical on-demand) for installed CU6

http://support.microsoft.com/kb/2830140/en-us

Microsoft removes CU6 link and creates a new Cumulative Update, CU7

Cumulative Update 7 (SQL Server 2008 R2 SP2)
http://support.microsoft.com/kb/2844090

viernes, 14 de junio de 2013

Exam 70-462: Administering Microsoft SQL Server 2012 Databases

I want to share with us...
Successfully passed: Exam 70-462: Administering Microsoft SQL Server 2012 Databases


viernes, 10 de mayo de 2013

The Service Broker Id for the remote copy of the database TEST does not match the ID on the principal server. (Microsoft SQL Server, Error: 1436)


I’ll explain the scenario:

It’s needed to drop Queues and services that aren’t in use, I’ve a mirrored DB’s for each country on different servers. DB’s are in FULL mode, with full backup at night and Log backup hourly.
All queues were dropped correctly, except in one server, it’s running for a long time, and never ends.
I tried to disable and enable Service broker. It didn’t work.
“The solution”, to execute a New Broker statement, and then drop queues.

ALTER DATABASE TEST SET NEW_BROKER WITH ROLLBACK IMMEDIATE

Msg 9778, Level 16, State 1, Line 1
Cannot create a new Service Broker in a mirrored database "TEST".
Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed.

Important: It can’t be executed because there is involved in a mirror.

Mirror needs to be removed in order to execute this statement.

When statement was executed, I' could drop the queues and services. Then I did a backup log, in order to mount a new mirror.

I recovered the last full backup (last night) and Log backups, including the last “manual” log backup.

When I started the mirror, this error happens.

The Service Broker Id for the remote copy of the database TEST does not match the ID on the principal server. (Microsoft SQL Server, Error: 1436).



I’m not sure about this, but I think recovering last log backup (which includes Alter statement) on mirrored DB makes to create a new GUID Broker, different to principal DB. When mirror starts, service broker ID’s are different and it can’t be started.

The solution is to make new full backup having New Service Broker GUID inside.
Now, creating the mirror with this backup, works correctly.

If anyone knows better solution, please let me know.

Thanks in advance.

miércoles, 24 de abril de 2013

sp_procoption : Automatic T-SQL Execution at Every Instance Startup


sp_procoption sets stored procedure for autoexecution. It runs stored procedures every time that SQL Server instance is started. (Applicable for SQL Server 2005 and above versions).

See the sintax:

sp_procoption [ @ProcName = ] 'procedure' 
    , [ @OptionName = ] 'option'
    , [ @OptionValue = ] 'value'

@ProcName = 'procedure'
Is the name of the procedure for which to set an option. procedure is nvarchar(776), with no default.
@OptionName = 'option'
Is the name of the option to set. The only value for option is startup.
@OptionValue = 'value'
Is whether to set the option on (true or on) or off (false or off). value is varchar(12), with no default.

Startup procedures must be in the master database and cannot contain INPUT or OUTPUT parameters.
Execution of the stored procedures starts when all databases are recovered and the "Recovery is completed" message is logged at startup.

Requires membership in the sysadmin fixed server role.

MSDN reference:

In example, we can register all times that server was restarted, see the script below:

Use master
GO

CREATE TABLE dbo.ServerLog (StartupTime DATETIME) 
GO 

CREATE PROCEDURE dbo.TimeLog
AS
                INSERT dbo.ServerLog
                               SELECT GETDATE()
GO

Mark the stored for autoexecution

EXEC SP_PROCOPTION
@ProcName = 'TimeLog',
@OptionName = 'startup',
@OptionValue = 'true'

Disable autoexecution

EXEC sp_procoption
@ProcName = 'TimeLog',
@OptionName = 'startup',
@OptionValue = 'off'

The example inserts current date in table ServerLog every time server restarts.

Only objects in the master database owned by dbo can have the startup setting changed.

miércoles, 27 de marzo de 2013

Tamaño de fichero Excel excesivamente grande

Quizás os haya sucedido que trabajando con cualquier fichero Excel (versiones 2007 en adelante), que ocupa por ejemplo 5MB, sin darte cuenta, ha pasado a ocupar 15MB.

¿Por qué?

No hemos añadido nada fuera de lo normal como para que se triplique el tamaño (En mi caso contengo 50 hojas).

Bien, la explicación que da Microsoft al respecto es la siguiente:

Microsoft Excel sólo guarda la parte de cada hoja de cálculo que está en uso, lo que significa la sección que contiene datos o formato. A veces la última celda de una hoja de cálculo puede estar más allá del rango de datos utilizados realmente. Este problema puede hacer que tenga un tamaño de archivo mayor de lo necesario, que imprima páginas adicionales, que reciba mensajes de error "Memoria insuficiente" o que experimente otros comportamientos anómalos. El borrado de las filas y columnas sobrantes para restablecer la última celda puede ayudar a para resolver estos problemas.

Eso está muy bien, pero a veces cuesta encontrar las filas sobrantes.

Yo he cogido directamente el método 2, a priori más rápido y automático, pero con una salvedad, el complemento de Excel sólo se aplica a la versión en inglés de Excel.

No es más que un fichero xla, un Add-in de Excel, pero se comporta como un libro Excel y lo que contiene son macros.

Al abrir el complemento, se lanza el evento Workbook_Open, que intenta crear  una opción de menú. Pues bien el motivo por el cual sólo funciona en la versión en Excel en Inglés, es porque para crear la opción busca e menú “Chart Menu Bar” como literal, y evidentemente ese literal cambia en el resto de idiomas, con lo que al intentar abrirlo con otra versión de Excel, por ejemplo en Español  da un error.



Bien, este Add-in tiene dos partes, la creación de la opción de menú para llamar a la función que nos limpiará el código, y el código necesario para limpiar nuestro Excel.

Una manera de acceder, es darle a depurar y aparecerá el entorno de VBA, allí podréis ver un módulo llamado modprocs y dentro un procedimiento, ClearExcessRowsAndColumns.

La solución para por copiar dicho módulo el Excel que queremos limpiar. Si tenemos el Excel abierto, lo veremos en el visor de proyectos.

En la captura podemos ver los módulos del Excel a reparar y del Add-in.



Pues bien, arrastramos el modulo modprocs a la carpeta módulos de nuestro Excel, así obtendremos una copia.
Posteriormente, nos ubicamos sobre el Excel a reparar, por ejemplo seleccionando el módulo modprocs



Y desde la ventana inmediato llamamos al procedimiento ClearExcessRowsAndColumns.

Previamente, os aconsejo que desprotejáis todas aquellas hojas que dispongan de contraseña.

Luego no tenéis más que guardar de nuevo el fichero y veréis que ya se ha reducido de nuevo el tamaño a 5MB.

Otra cosa que os puede servir para conocer con un poco más de detalle qué hojas ocupan más espacio es el siguiente:
Realiza una copia de tu fichero .xlsx, .xlsm, etc. Y renombra la extensión a zip.
Si lo abres, verás la estructura interna del fichero Excel, esto es porque a partir de Excel 2007, los archivos están internamente comprimidos mediante ZIP.


Si entramos por ejemplo  al directorio xl, subdirectorio sheets, podemos ver el tamaño de cada hoja, así como la compresión aplicada.


Así podéis ver que hoja ocupa más, y tratar de optimizarla.

Espero que os haya servido de ayuda.

jueves, 3 de enero de 2013

SQL Server 2008 R2 Security Benchmark Released


The Center for Internet Security (CIS) Security Benchmarks Division released “CIS Microsoft SQL Server 2008 R2 Database Engine Benchmark V1.0.0” on November 16, 2012. 
It can also be used for SQL Server 2008.
CISSQL2008R2










This is a consensus-based development of security best practices which have become the de facto security configuration standards.  If you are in charge of your SQL Server security configuration, it can be usefull.