Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/02/2012, 11h40   #1
Nouveau Membre du Club
 
Homme Johan
Inscription : décembre 2006
Messages : 131
Détails du profil
Informations personnelles :
Nom : Homme Johan
Âge : 27
Localisation : France

Informations forums :
Inscription : décembre 2006
Messages : 131
Points : 32
Points : 32
Envoyer un message via MSN à Hotfirenet
Par défaut Gouverneur de ressources

Bonjour à tous,
suite au super tuto de mikedavem j'ai pas mal avancé sur ce qu'il etait possible de faire.

Par contre au niveau de la fonction de classification j'aurais aimer classifier par schema de base mais je ne sais pas si c'est possible.

j'ai bien tester de modifier la fonction suivante

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
USE master;
GO
 
CREATE FUNCTION dbo.classified_function()
RETURNS SYSNAME
WITH SCHEMABINDING
AS
BEGIN
 
RETURN
(
	SELECT CASE SUSER_NAME()
		WHEN 'excelreporting' THEN 'gReportingExcel'
		WHEN 'accessreporting' THEN 'gReportingAccess'
		WHEN 'maintenance' THEN 'gMaintenance'
		ELSE 'Default'
	END
)
END; 
GO
En remplacant SUSER_NAME() par SCHEMA_NAME() et en remplaçant dans les WHEN les différents schémas que je voulais classer mais rien n'y fait.

Auriez vous plus d'infos ?

Merci
Johan
Hotfirenet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 11h43   #2
Nouveau Membre du Club
 
Homme Johan
Inscription : décembre 2006
Messages : 131
Détails du profil
Informations personnelles :
Nom : Homme Johan
Âge : 27
Localisation : France

Informations forums :
Inscription : décembre 2006
Messages : 131
Points : 32
Points : 32
Envoyer un message via MSN à Hotfirenet
En sachant que j'ai utiliser le compte maintenance en modifiant le schema par défaut.

Car d'aprés la doc http://msdn.microsoft.com/fr-fr/library/ms175068.aspx Si schema_id n'est pas défini, SCHEMA_NAME retourne le nom du schéma par défaut de l'appelant.
Hotfirenet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 12h38   #3
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 726
Points : 6 851
Points : 6 851
Cela ne sera pas possible car lorsque la fonction de classification est appelée vous n'êtes pas encore au niveau de la base de données. Vous ne pourrez donc pas utiliser SCHEMA_NAME().

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/02/2012, 13h16   #4
Nouveau Membre du Club
 
Homme Johan
Inscription : décembre 2006
Messages : 131
Détails du profil
Informations personnelles :
Nom : Homme Johan
Âge : 27
Localisation : France

Informations forums :
Inscription : décembre 2006
Messages : 131
Points : 32
Points : 32
Envoyer un message via MSN à Hotfirenet
Citation:
Envoyé par mikedavem Voir le message
Cela ne sera pas possible car lorsque la fonction de classification est appelée vous n'êtes pas encore au niveau de la base de données. Vous ne pourrez donc pas utiliser SCHEMA_NAME().

++
Ok on ne peut donc passer que par APP_NAME () et SUSER_NAME() ?
il n'y pas moyen de classifier autrement ?
Hotfirenet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 15h09   #5
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 726
Points : 6 851
Points : 6 851
Vous pouvez faire appel à toutes les fonctions ou requêtes qui n'interviennent qu'entre la phase du login et l'affectation à la base de données (ce dernier paramètre étant exclu).

Après rien ne vous empêche d'utiliser une table de travail avec votre fonction de classification.

Mais quel est votre but final ?


++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 18h40   #6
Nouveau Membre du Club
 
Homme Johan
Inscription : décembre 2006
Messages : 131
Détails du profil
Informations personnelles :
Nom : Homme Johan
Âge : 27
Localisation : France

Informations forums :
Inscription : décembre 2006
Messages : 131
Points : 32
Points : 32
Envoyer un message via MSN à Hotfirenet
La classification dans notre cas ne peut pas se faire simplement par le nom d’une application(APP_NAME) ou par l’utilisateur(SUSER_NAME).

Nous estimons avoir besoin d’une dizaine de groupe de ressources dans lesquels seront affectés des requêtes venant de différents horizons (SSIS, SSAS, SSRS, applications propriétaires, diverses, Excel, Harry Software …). Elles sont hiérarchisées selon le mode de fonctionnement de notre entreprise et consignées dans un catalogue.

Donc, chaque requêtes ou ensemble de requêtes doivent être différenciées selon une valeur discernable dans le mode de connexion.

Comme APP_NAME() n’est pas sécurisé, on en profite pour le changer. Ainsi on change par exemple « Management Studio – requête » par ce que l’on veut comme « requeteGroupe1. Mais ce n’est surement pas la meilleur façon de procéder.

D’ailleurs une question en rapport avec le sujet est : est-il possible de mettre un paramètre non reconnu(non standard) dans la chaîne de connexion ?
Hotfirenet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h12.


 
 
 
 
Partenaires

Hébergement Web