Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [SQL-SERVER] stored procedures non visibili se non specifico l'utente

    ciao.
    mi piacerebbe sapere perchè se non specifico l'utente in questo modo:

    CREATE PROCEDURE [NOMEUTENTE].[G_UTENTI$Nuovo] (....

    e richiamo la procedura dal codice con la seguente notazione:

    NOMEUTENTE.G_UTENTI$Nuovo

    l'applicazione non vede le procedure, anche se l'utente è connesso al DB con "NOMEUTENTE"

    grazie
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  2. #2
    Non specificando l'utente di default viene considerato il dbo. Quindi cerca una stored dbo.Nome e nn la trova.
    In parole molto povere è così


  3. #3
    aspetta 1 secondo, non scappare....questo significa che in tutte le mie STORED (lato DB non quando le richiamo da ASP) devo indicare SEMPRE NOMEUTENTE.NOMEFUNZIONE ? anche se sono connesso al DB proprio con quell'utente? :master:
    grazie 10.000.000
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  4. #4
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    la buona regola delle sp sarebbe quella di assegnarle sempre esplicitamente ad un proprietario. il proprietario può essere un utente specifico del db oppure un profilo. ad esempio:

    Create procedure dbo.nomeprocedura .....

    Poi, quando vengono eseguite, richiemarle sempre con il nome del proprietario. Questo sia da quesry analizer che da qualunque programma o eseguibile (com, dll, asp, ecc..)

    Esiste una sp di sistema che permette di riassegnare un oggetto ad un altro proprietario:
    sp_changeobjectowner
    fai una ricerca sui bookonline di sqlserver
    Tutti vogliono parlare, nessuno sa ascoltare.

  5. #5

    ultimo chiarimento

    OK fin qui sono d'accordo, ma riflettendoci non capisco affatto perchè se sono loggato al DB con l'utente "PINCO", quando richiamo l'sp "MIAPROCEDURA" non mi richiama l'sp "PINCO.MIAPROCEDURA", l'unica cosa che secondo me avrebbe senso e che Oracle supporta.
    Il problema non è richiamare da asp le sp con la notazione NOMEUTENTE.NOMEPROCEDURA, ma nel caso caricassi l'applicazione su un db diverso con un utente diverso, dover rinominare TUTTE LE SP!
    quindi tanto vale chiamare le sp senza specificarne l'utente, in modo da assegnarle tutte a dbo o sbaglio?
    oppure sbaglio qualcosa nell'assegnazione dei ruoli o dei permessi degli utenti?
    scusate se sono un po' durotto ma sto cominciando a capire...
    grazie ancora
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  6. #6
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    come detto è anche un discorso di sicurezza.
    poi, a rinominare le sp, basta una riga di codice T-SQL (interroghi lo schema del db e usi la sp di sistema che ti ho segnalato)

    se le assegni al dbo tutti gli utenti appartenenti a quel profilo possono usarla, ma la devi invocare sempre come dbo.tuaprocedura
    Tutti vogliono parlare, nessuno sa ascoltare.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.