Avatar billede evilfish Nybegynder
05. april 2005 - 20:26 Der er 16 kommentarer og
1 løsning

Flyt owner til ny user

Hej eksperter

Jeg har netop installeret en ny Ms sql database på min computer og den kører efter planen. Derved har jeg oprettet en ny database. I den har alle tabeller 'dbo' som owner. Jeg vil gerne have sat en anden user some owner af tabellerne. Hvorledes skal det gøres?
Avatar billede arne_v Ekspert
05. april 2005 - 20:47 #1
EXEC sp_changeobjectowner 'tabel', 'user'

(men hvis du har Enterprise Manager kan du sikkert højreklikke og fixe det der)
Avatar billede evilfish Nybegynder
05. april 2005 - 20:49 #2
Jeg har enterprice Manager. Ved hvordan det så skal gøres?
Avatar billede evilfish Nybegynder
05. april 2005 - 21:09 #3
Ved du hvordan det så skal gøres?*
Avatar billede arne_v Ekspert
05. april 2005 - 21:22 #4
Jeg har ikke EM til rådighed lige nu.

Har du prøvet at højreklikke på tabel og vælger properties ?
Avatar billede arne_v Ekspert
05. april 2005 - 21:25 #5
men hvis du ikke kan finde den så fyr den SQL kommando af i Query Analyzer
Avatar billede evilfish Nybegynder
05. april 2005 - 21:26 #6
Dette giver mig kun mulighed for at redigere i tabellens egenskaber mht. rækkernes opsætning
Avatar billede ldanielsen Nybegynder
05. april 2005 - 22:50 #7
Åbn tabellen i Design i EM

Højreklik på vinduet og vælg properties, eller klik på knappen "Table and Index properties" (lige ved siden af "Gem"-knappen)

Så kan du skifte owner via fanen "Tables"
Avatar billede evilfish Nybegynder
06. april 2005 - 07:33 #8
Tak, det var lige det jeg ledte efter. Havde håbet man kunne gøre det på alle tabeller, men nu gælder det ikke så mange.
Avatar billede arne_v Ekspert
06. april 2005 - 08:06 #9
Øh - det er jo netop fordelen ved sp kaldet. Den kan kaldes fra en anden sp
som looper over alle tabeller.
Avatar billede ldanielsen Nybegynder
06. april 2005 - 15:13 #10
arne_v > Ja, jeg mener da også det må være den bedste løsning, hvis der er mange objekter. Men den slags loop's kan jeg ikke lave "fra hoften", jeg bruger nok musen lidt for meget :o).

Skal vi dele?
Avatar billede arne_v Ekspert
06. april 2005 - 15:20 #11
Jeg har noget liggende som jeg lige prøver at kombinere med:

CREATE PROCEDURE MULTICHANGEOWNER AS

DECLARE @name  VARCHAR(32)

DECLARE c CURSOR FOR
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'

OPEN c

FETCH NEXT FROM c INTO @name

WHILE @@FETCH_STATUS = 0
BEGIN
      PRINT @name
      -- EXEC SP_CHANGEOBJECTOWNER @name, 'julemanden'
      FETCH NEXT FROM c INTO @name
END

CLOSE c

DEALLOCATE c

GO

og test for guds skyld med PRINT inden med EXEC
Avatar billede arne_v Ekspert
06. april 2005 - 15:20 #12
og spørgsmålet er jo egentligt afsluttet
07. april 2005 - 11:28 #13
Og en kommentar herfra:
Hvorfor ikke beholde dba som owner?
Jeg har været ude for en database hvor der var to tabeller, med samme navn, men med forskellig owner. Det gik fint, lige indtil at den ene bruger skulle bruge den andens applikation, med nummer 2 owner.
Hvis du så tillige husker at skrive "dbo." (uden ") foran alle dine tabeller, så er MSSQL bedre til at undlade at compile din sql hele tiden. Det giver meget bedre performance.
mvh
Henrik Staun Poulsen
Avatar billede evilfish Nybegynder
07. april 2005 - 23:38 #14
Jeg har tre sql server med samme navn som den lokale jeg lige har spurgt til. Og de to kan jeg ikke ændre. Derfor bliver jeg nødt til at tilpasse mig localserver til remote :D
08. april 2005 - 09:13 #15
Jamen,,,,
"Server name" har ikke noget med "Database name" at gøre.
Hvis det er helt rigtigt kan man bruge "database.owner.object_name" på the local server, og "linked_server.catalog.schema.object" hvis man har remote servers. Jeg har læst at man anbefaler at bruge "dbo" som owner name.
Avatar billede evilfish Nybegynder
08. april 2005 - 21:39 #16
bruger sql codebuilder, og remote server sætter Evilfis_msaqldb.XXXX foran, og når min local code builder laver dbo.XXXX, gider jeg altså ikke ændre det heletiden :)
12. april 2005 - 09:36 #17
Det er naturligvis helt op til dig selv hvor du vil lægge arbejdsindsatsen. Hvis din app. kun skal køre eet sted, er din timeløn nok for høj til at det kan betale sig at optimere. Hvis mere hastighed er nødvendig, så køb noget nyt h/w. Jeg kender ikke sql codebuilder, og kan ikke råde dig omkring den.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester