none
MS SQL Server 2005 - порядок начала создания объектов - login/schema - непонятно RRS feed

  • Вопрос

  • Привет всем :)

     

    Наткнулся на такой момент... К примеру я хочу создать несколько самых простых объектов, как

    А) Логин

    В) БД

    С) Пользователя

    D) Роль

    E) Схему

    Разумеется пробую создать через Management Studio , но наткнулся на некоторый замкнутый круг... Каждый из объектов списка как-либо требует наличие друг друга - это либо "схемы по умолчанию" либо "пользователя" при том, что эти объекты ещё не созданы -  например

    А) Создаю user - требует login и default schema

    B) Создаю в БД schema - требует user, database role

    С) Создаю DB Role - требует user, database role, app role

     

    Потому возникает вопрос, а именно: с какого объекта нужно начать создание, чтобы избежать цикличных ссылок, но при этом максимально соблюсти возможность настройки разграничений доступа?

     

     

    • Перемещено KJian_ 20 июня 2011 г. 3:44 (От:Transact-SQL)
    20 июня 2011 г. 2:56

Ответы

Все ответы

  • I found this, albeit old post, http://www.sqlservercentral.com/articles/Administration/loginsusersandrolesgettingstarted/514/ which may be of some help. I think your thread should be moved to Russian speaking forum, I'll ask the moderators here to move.
    For every expert, there is an equal and opposite expert. - Becker's Law


    My blog
    20 июня 2011 г. 3:05
  • Ик... Не заметил, что это англ ветка :) Но за ссылку - спасибо. Обязательно ознакомлюсь.

    Но вот не понятен такой момент...

    Есть "схема по умолчанию" и та, которую можно создать непосредственно в любой новой БД - это одно и то же или это два разных вида схемы?

    При создании логина как указать, что он не dbo? В формах по умолчанию проставляется dbo почему-то, потому интересно узнать может через сам код можно с этим что-то делать?

    Пробовал создать user на такой логин и постоянно вылетает error 15063, что, мол, у этого логина user - это уже dbo :(

    То есть одно за другое цепляется и не дает создать нормальную цепочку объектов, но меня прежде всего интересует подход через T-SQL конечно же



    20 июня 2011 г. 3:17
  • For your first question I think I found this relevant question (and answer) http://stackoverflow.com/questions/1398565/can-you-set-default-schema-for-sql-2008-query

    By default all tables and newly created objects belong to dbo schema. However, you can define a different schema to be default (as the syntax in this question shows) and you can also define different schema for each user.

     


    For every expert, there is an equal and opposite expert. - Becker's Law


    My blog
    • Помечено в качестве ответа Dmitry Davydov 21 июня 2011 г. 13:51
    20 июня 2011 г. 3:23
  • Это здорово :) Я попробовал создать новую схему и уже на ней создать объекты, но возникла такая штука... Я написал процедуру, которая просто возвращает случайное число

     

    CREATE PROCEDURE myschema.getRandNumber

    AS

    BEGIN

    SELECT rand()

    END

    Создалась - все в порядке, но выпонить я её могу только с учетки, по которой заходит Management Studio -это аутентификация windows

     но если логин работает только с myschema и не ссылается нигде на dbo, то клиентское приложение, которое коннектится через него не может получить доступ к rand() ... То есть если учетка администратора, то нормально выполняет тест этой процедуры итд, но если заходить с клиента, то нужно что-то ещё, чтобы для нового логина под myschema заработала такая процедура, но сам пока я не нашел куда смотреть, чтобы найти как это исправить... Но опять же хочется точечно сделать доступ только к выполнению rand() например... Как это можно сделать?

    22 июня 2011 г. 1:02
  • дать права на схему или только на эту процедуру


    http://www.t-sql.ru
    22 июня 2011 г. 6:19
    Отвечающий
  • Это я уже понял :) Но как-то не нашел как это сделать... Это создать rule или модифицировать role?
    22 июня 2011 г. 16:21