Creation d’une DB avec le owner SA donne l’erreur 15151

  • Vous avez le role DBCREATOR mais pas SYSADMIN
  • Vous creez une DB mais en indiquant le owner ‘SA’
  • Le message d’erreur apparait « Cannot find de the principal ‘sa’, because it does not exist or you do not have permission (Microsoft SQL Server, Error: 15151) »
  • Solution: Malheureusement il faut granter le role SYSAMDIN au login
Publié dans Access error, Sample code, SQL Server | Commentaires fermés

Comment creer un tunnel avec Putty

Contexte:

Vous etes a l’exterieur de la maison et vous desirez acceder a un petit serveur web a la maison, mais le port n’est pas disponible pour une raison quelconque.

Au lieu d’ouvrir plusieurs ports sur votre routeur a la maison (et ainsi ouvrir plusieurs occasion d’etre hacker) vous pouvez simplement ouvrir le port SSH (22) vers un serveur SSH et ensuite creer un tunnel afin de rediriger le traffic des autres port via du « ssh tunnelling ».

Le logiciel gratuit Putty vous permet de creer une session terminal SSH sur votre PC/Mac.
(disponible au http://www.putty.org/)

Exemple de configuration:
-routeur maison: 192.168.1.1 (adresse internet 11.22.33.44)
-serveur linux avec SSH et serveur web sur port 8080: 192.168.1.100

Methode:

  1. Configurer votre routeur  afin d’accepter les connexion entrante au port 22 et les assigner vers l’adresse 192.168.1.100
  2. S’assurer que le serveur linux accepte les connexions SSH (c’est comme evident…)
  3. Sur votre ordinateur (a distance via le web) demarrer Putty.
  4. Entrez les parametres de connexion comme suit:
    putty1
  5. Cliquez a gauche sur CONNECTION, SSH, TUNNELS.
    Definir le tunnel comme suit:
    putty2
  6. Une fois termine cliquez sur ADD et ensuite OPEN.
    Branchez vous sur le serveur linux(192.168.1.100) en SSH avec un compte valide.
  7. Demarrer votre browser, entrez l’adresse 127.0.0.1 et le port 8080.
    Et voila !, vous accedez votre serveur web:
    putty3

 

Publié dans Linux, Windows | Commentaires fermés

Acceler la creation/recouvrement de database dans SQL Server

Il est possible de reduire le temps de creation de database au niveau de SQL Server. Ainsi il est possible de creer de nouvelles DB de plusieurs GB ou TB en une fraction de seconde.

Pour ce faire il suffit d’autoriser la permission « Perform volume maintenance tasks » au Service Account sous lequel fonctionne l’instance SQL.

Mais il y a un risque potentiel a payer: au moment de la creation du nouveau datafile, ce dernier n’est pas efface, donc le contenu sur le disque peut-etre visible si l’on detache la DB et que l’on visionne ce fichier.

Pour plus d’instructions:

http://technet.microsoft.com/fr-fr/library/ms175935(v=sql.110).aspx

 

Publié dans Backups, SQL Server | Commentaires fermés

Script pour defragmenter les index sur SQL Server

USE ServiceDataMart
GO
SET NOCOUNT ON;
DECLARE @objectid int;
DECLARE @indexid int;
DECLARE @partitioncount bigint;
DECLARE @schemaname nvarchar(130);
DECLARE @objectname nvarchar(130);
DECLARE @indexname nvarchar(130);
DECLARE @partitionnum bigint;
DECLARE @partitions bigint;
DECLARE @frag float;
DECLARE @command nvarchar(4000);
— Conditionally select tables and indexes from the sys.dm_db_index_physical_stats function
— and convert object and index IDs to names.
SELECT
object_id AS objectid,
index_id AS indexid,
partition_number AS partitionnum,
avg_fragmentation_in_percent AS frag
INTO #work_to_do
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, ‘LIMITED’)
WHERE avg_fragmentation_in_percent > 10.0 AND index_id > 0;

— Declare the cursor for the list of partitions to be processed.
DECLARE partitions CURSOR FOR SELECT * FROM #work_to_do;

— Open the cursor.
OPEN partitions;

— Loop through the partitions.
WHILE (1=1)
BEGIN;
FETCH NEXT
FROM partitions
INTO @objectid, @indexid, @partitionnum, @frag;
IF @@FETCH_STATUS < 0 BREAK;
SELECT @objectname = QUOTENAME(o.name), @schemaname = QUOTENAME(s.name)
FROM sys.objects AS o
JOIN sys.schemas as s ON s.schema_id = o.schema_id
WHERE o.object_id = @objectid;
SELECT @indexname = QUOTENAME(name)
FROM sys.indexes
WHERE object_id = @objectid AND index_id = @indexid;
SELECT @partitioncount = count (*)
FROM sys.partitions
WHERE object_id = @objectid AND index_id = @indexid;

— 30 is an arbitrary decision point at which to switch between reorganizing and rebuilding.
IF @frag < 30.0
SET @command = N’ALTER INDEX ‘ + @indexname + N’ ON ‘ + @schemaname + N’.’ + @objectname + N’ REORGANIZE';
IF @frag >= 30.0
SET @command = N’ALTER INDEX ‘ + @indexname + N’ ON ‘ + @schemaname + N’.’ + @objectname + N’ REBUILD';
IF @partitioncount > 1
SET @command = @command + N’ PARTITION=’ + CAST(@partitionnum AS nvarchar(10));
EXEC (@command);
PRINT N’Executed: ‘ + @command;
END;

— Close and deallocate the cursor.
CLOSE partitions;
DEALLOCATE partitions;

— Drop the temporary table.
DROP TABLE #work_to_do;
GO

Publié dans Sample code, SQL Server, SQL Server | Commentaires fermés

Erreur PC: Message NTLDR Manque

Quelle desagrable surprise de voir son PC avec ce message au demarrage:
 »NTLDR manque, appuyez sur CTRL + ALT + Suppr pour redémarrer ».

Solution qui a regler mon probleme:
How To Restore NTLDR and Ntdetect.com From the Windows XP CD
http://pcsupport.about.com/od/fixtheproblem/ht/ntldrntdetect.htm

Publié dans Windows | Commentaires fermés