IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

Tracer une opération truncate table


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    dba
    Inscrit en
    Décembre 2016
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : dba
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2016
    Messages : 119
    Par défaut Tracer une opération truncate table
    bonjour a tous

    Qui a une idée comment je peut tracer les opérations hostname,user

    c'est une opération très dangereux il est très proche de celle du drop table et je ne sait pas comment je peut le tracer ou même mettre un petit déclencheur pour l’empêcher

    merci pour vos aides

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 021
    Billets dans le blog
    6
    Par défaut
    Le TRUNCATE est un simple DELETE de la totalité de la table.
    Il est traçable via le profiler SQL de la manière suivante :
    Nom : Profiler Truncate.jpg
Affichages : 140
Taille : 67,3 Ko

    Cette opération n'est pas sujette à lever un déclencheur DELETE, parce que ce n'est pas un commande logique, mais une commande physique.

    Vous pouvez cependant agir de différentes manières :
    1) jouer sur les privilèges des utilisateurs
    2) faire en sorte que votre table soit liée par l'intégrité référentielle
    3) utiliser des vues plutôt que des tables.

    Pour de plus amples information, lisez notre livre :
    Nom : Couverture livre SQL server Eyrolles.jpg
Affichages : 123
Taille : 105,0 Ko

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Il serait plus adéquat d'octroyer les droits qui conviennent, toujours en suivant le principe du privilège minimum.

    En l’occurrence, TRUNCATE TABLE requiert que l'utilisateur qui l'exécute dispose du droit ALTER sur la table, ou à défaut aux membres du rôle de base de données db_owner, ou à défaut aux membres sur rôle de serveur sysadmin.
    L'utilisateur que vous recherchez ne devrait avoir que des droits EXECUTE si vous utilisez des procédures stockées, ou SELECT, INSERT, UPDATE, DELETE si vous utilisez sp_executesql.

    Ceci étant, on peut, au besoin :

    • Placer l'instruction TRUNCATE TABLE dans une procédures stockée, et octroyer le droit d'exécution de la procédure stockée à l’utilisateur adéquat
    • Si cela pose problème, créer un schéma dans la base de données, manipuler des données dans des tables de ce schéma, et octroyer le droit ALTER sur ce schéma (GRANT ALTER ON SCHEMA::monSchema TO monUser)


    @++

Discussions similaires

  1. [AC-2003] Résultat d'une opération dans un champ d'une table
    Par nomade333 dans le forum VBA Access
    Réponses: 1
    Dernier message: 06/02/2012, 10h16
  2. Réponses: 5
    Dernier message: 27/01/2010, 15h38
  3. [FP]Tracer Une ligne avec Dev-pascal
    Par yffick dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 17/12/2003, 17h33
  4. Check sur une colonne de table "en cours"
    Par in dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/07/2003, 10h47
  5. Tracer une ligne droite sans les interruptions
    Par Stef784ever dans le forum x86 16-bits
    Réponses: 4
    Dernier message: 25/11/2002, 02h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo