Форум FAQ О команде
Поиск по сайту:
 
Sybase
Sybase ASA  
Sybase ASE  
Sybase IQ  
Sybase PowerDesigner  
  Статьи  
Sybase PowerBuilder  

Продукты
Наши продукты  
Продукты партнеров портала  

Сообщества
Alef community  

Меню
Регистрация  
Почта  

Вход

Рассылка
Рассылка 'РСУБД Sybase ASA 9 - мощность, легкость и надежность'
Почтовая рассылка
"Технологии обработки данных компании Sybase"


Статистика
Яндекс цитирования

Rambler's Top100
Находится в каталоге Апорт

Главная -> ПО Sybase -> Sybase PowerDesigner -> Статьи
Как простому пользователю обратиться к таблице не указывая ее владельца?

Как простому пользователю обратиться к таблице не указывая ее владельца?

В запросах простых пользователей (не DBA) при обращении к любым объектам БД, созданных DBA приходится явно указывать имя владельца. В противном случае сервер выдает ошибку, что такой таблицы, процедуры, ... не существует.

Т.е. код:
Select * 
From SomeTable 

вернет ошибку об отсутствии таблицы SomeTable, в то время как
Select * 
From DBA.SomeTable 

прекрасно отработает.

Чтобы заставить работать первый вариант нужно:
1. Преобразовать юзера DBA в группу DBA.
2. Простого юзера включить в группу DBA. Или в любую другую группу, которая входит в DBA.

Все это можно выполнить в Central или же через ISQL.

Пояснения:
Пусть у нас есть только что созданная база (пойдет и asademo.db).
Запустим Isql и создадим там таблицу от имени DBA:

Create Table ttt(id int) 
go
insert ttt values (1)
go
insert ttt values (2)
go
insert ttt values (3)
go


Создадим учетную запись "user" с паролем "123":
GRANT CONNECT TO "user"   IDENTIFIED BY "123"
go


Дадим права этой учетной записи на чтение таблицы:
GRANT SELECT ON "DBA"."ttt" TO "user"  FROM "DBA"
go



А теперь, внимание! Делаем из юзера DBA группу DBA и включаем в эту группу учетную запись "user":
grant group to DBA
go
GRANT MEMBERSHIP IN GROUP "DBA" TO "user"
go

Все! Теперь можно обращаться к любым объектам, созданным DBA. Вы больше никогда не получите сообщение о том, что такого объекта нет.

SETUSER "user"
go

Ура, мы теперь уже не DBA, а простой user!!!
Для проверки выполним простенький запрос:
Select * From ttt
go

Ура, получилось!!!
А теперь еще один запросец, проверка на вшивость:
Delete From ttt
go

Все верно, этот запрос не выполнится, т.к. прав на удаления у нас нет :).


Дата публикации: Monday 27 March 2006 19:04:49
Материал прочитан: 10414 раз(а)
[ Назад ]



Продвижение сайтов
Биржа ссылок

Copyright©2005 phpMS. Все права защищены.
hosted on pets-tree