PDA

View Full Version : بدست آوردن Schema یک Login ؟



amin_alexi
شنبه 30 آذر 1387, 13:16 عصر
سلام
می خوام بدونم وقتی با یک Login به SQL Server متصل میشم نام Schema اون برای ساخت جدول چیه ! (نمی دونم سوالم رو درست می پرسم یا نه !؟ :لبخند:)
توضیحات :
وقتی با نام کاربر sa لوگین می کنیم و یک Database می سازیم و روی DB یک جدول می سازیم برای Select از جدول نام کامل به این صورته DB1.dbo.Tbl1 این dbo که Owner این جدوله ...
حالا ما یک با یک User به نام Amin که Default Schema اون هم Amin است تو این DB یک جدول می سازیم این جدول حالا به این صورت DB1.Amin.Tbl1 برای کاربر قابل دسترسه !
سوال:
من این قسمت dbo یا Amin رو می خوام برای هر Login بدونم چیه !؟
یعنی یک دستور SQL که با توجه به Login بگه که برای این Login هنگام ساخت جدول یا Function چه Schema قبل از نام جدول یا Function گذاشته میشه !؟

amin_alexi
شنبه 30 آذر 1387, 13:56 عصر
من یه چیزی فهمیدم
اگه یک User عضو sysadmin باشه اون جدولی که میسازه متعلق به dbo میشه ! و نام جدول به صورت dbo.tbl1
و حالا اگه اون User عضو db_owner باشه به صورت Amin.tbl1 میشه !؟

حالا سوال این میشه !؟
دستور SQL برای اینکه بدونیم یه Login عضو sysadmin هست یا نه ؟
یا اینکه یک دستور SQL که بدونیم Login عضو کدام Server Roles می باشد ؟!

AminSobati
شنبه 30 آذر 1387, 18:25 عصر
امین جان در کدوم نسخه کار میکنید؟

amin_alexi
یک شنبه 01 دی 1387, 07:57 صبح
امین جان در کدوم نسخه کار میکنید؟
یعنی با هم فرق داره !؟؟ :گیج:
الان واسه نسخه 2000 احتیاج دارم هر چند که به خاطر اینکه از 2000 به 2005 و 2008 هم Replication می زنم واسه اون هم لازم دارم :لبخند:
ممنون از آقای ثباتی عزیز ... :چشمک:

AminSobati
دوشنبه 02 دی 1387, 22:23 عصر
در نسخه 2000 مالکیت و Schema یکی هستند. وقتی کاربری Object بسازه، خودش هم مالک اون خواهد بود. پس به تعداد Schemaهایی که نیاز دارید باید کاربر هم داشته باشید. در 2005 دیگه Schema خودش یک Object مستقله و وقتی کاربری میخواد Object بسازه، هم اجازه CREATE نیاز داره هم ALTER روی اون Schema. وقتی Object رو ساخت و داخل Schema قرار داد، مالکیت Object میرسه به کسی که مالک Schema هست