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

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

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

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

Вход

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


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

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

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

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

В запросах простых пользователей (не 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
Материал прочитан: 10387 раз(а)
[ Назад ]



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

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