Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / что нужно намэпить? / 17 сообщений из 17, страница 1 из 1
29.01.2010, 12:07
    #36438241
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
подскажите кто в курсе
какие классы и глобали нужно намэпить на рабочую область для того что бы можно было пользоваться методами создания нового пользователя, назначения ему ролей, ввод ресурсов ?
...
Рейтинг: 0 / 0
01.02.2010, 17:35
    #36442786
Turk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
Ymka2007подскажите кто в курсе
какие классы и глобали нужно намэпить на рабочую область для того что бы можно было пользоваться методами создания нового пользователя, назначения ему ролей, ввод ресурсов ?
Все эти данные хранятся в области %SYS в индексной глобали ^SYS (см. sySecurity.INC). И функции запускаются из системных классов.
В чем именно проблема?
...
Рейтинг: 0 / 0
03.02.2010, 11:06
    #36446437
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
нужно организовать работу администратора БД (создать/удалить/отключить нового пользователя, создать/удалить ресурс) непосредственно из текущего проекта
причина: говорят что переключение нэймспейсов - не хорошее дело
хотя сейчас пытаюсь реализовать все через try-catch
...
Рейтинг: 0 / 0
03.02.2010, 11:17
    #36446469
I.Borisova
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
Мапить нужно пакет Security
...
Рейтинг: 0 / 0
03.02.2010, 15:16
    #36447347
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
I.Borisova,

это я догадался, а глобали какие?
или они вместе с пакетом?
...
Рейтинг: 0 / 0
03.02.2010, 18:29
    #36447893
Turk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
Глобали не нужно отображать. Но нужно, чтобы у пользователя Cache, под которым выполняется код в вашей области, в ролях был ресурс %DB_CACHESYS и, возможно, еще ряд ресурсов в зависимости от используемых функций (см. описание классов в пакете Security).
...
Рейтинг: 0 / 0
11.02.2010, 16:26
    #36463711
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
Turk,
сделал как Вы посоветовали, но
результата нет
т.е. например вывожу список ресурсов, а он пустой
...
Рейтинг: 0 / 0
11.02.2010, 16:34
    #36463742
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
Turk,

что посоветуете?
...
Рейтинг: 0 / 0
11.02.2010, 16:40
    #36463763
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
Turk,

у меня Cache 2009.1.3.704
...
Рейтинг: 0 / 0
12.02.2010, 11:07
    #36465153
Turk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
Ymka2007Turk,
сделал как Вы посоветовали, но
результата нет
т.е. например вывожу список ресурсов, а он пустой
Вы каким образом список получаете? Вот мой код, например:
Код: plaintext
1.
2.
3.
4.
s rs = ##class(%ResultSet).%New("Security.Resources:List")
d rs.Execute("*",- 1 ,- 1 )
f { q:('rs.Next())  w "Name="_rs.Get("Name"),! }
k rs
В Security-классах есть немало методов, где результат возвращается в одном из параметров. Причем результат является массивом. Например:
Код: plaintext
1.
2.
3.
w ##class(Security.Users).Get(<имя_пользователя>,.Prop)
w Prop  ; пустая строка
zw Prop  ; параметры пользователя в узлах массива

P.S.:
Cache for Windows (x86-32) 2009.1.1 (Build 504) Wed Aug 26 2009 01:43:16 EDT
...
Рейтинг: 0 / 0
12.02.2010, 14:56
    #36466054
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
Turk,

спасибо
уже разобрался
необходимо было предоставить пользователю привилегии на таблицы
НО
внезапно возникла проблема, если имя пакета содержит букву в нижнем регистре, то в списке доступных схем этот пакет не отображается
проблема решилась AdHoc - ком
теперь пытаюсь написать программу автоматического прописывания одной из ролей всех превилегий на все хранимые классы в проекте.
нашел как это сделать применительно к пользователю

если кто знает как сие отработать относительно роли - сообщите пожалуйста
...
Рейтинг: 0 / 0
15.02.2010, 18:33
    #36470799
Turk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
Ymka2007
НО
внезапно возникла проблема, если имя пакета содержит букву в нижнем регистре, то в списке доступных схем этот пакет не отображается
проблема решилась AdHoc - ком

Столкнулись с такой же проблемой еще в прошлом году. Пока дождались AdHoc-а, успели привыкнуть к GRANT-у.

Ymka2007
теперь пытаюсь написать программу автоматического прописывания одной из ролей всех превилегий на все хранимые классы в проекте.
нашел как это сделать применительно к пользователю
если кто знает как сие отработать относительно роли - сообщите пожалуйста
Что-то вроде этого?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
GrantPriv(namespace, project, grantee, priv="*") [ SQLCODE, ClassList, project, namespace ] PUBLIC
{
s SQLCODE =  0 
&sql(SELECT LIST(DictCls.SqlQualifiedNameQ) INTO :ClassList
	FROM %Dictionary.CompiledClass DictCls,
		(SELECT Name FROM %Studio.ProjectItem WHERE (Project = :project) AND (type = 'CLS')) PrjCls
	WHERE (DictCls.CompileNamespace = :namespace)
		AND (DictCls.ClassType = 'persistent' OR DictCls.ClassType = 'view')
		AND (DictCls.ID = PrjCls.Name)
	)
if (SQLCODE '= 0)
{
	w "Ошибка SQL: SQLCODE="_SQLCODE,!
	q 0
}
#;
s SQLCODE = 0
s rs = ##class(%ResultSet).%New("%DynamicQuery:SQL")
s sc = rs.Prepare("GRANT "_priv_" ON "_ClassList_" TO "_grantee)
s:($$$ISOK(sc)) sc = rs.Execute()
k rs
#;
if ($$$ISERR(sc)) && (SQLCODE '=  0 ) && (SQLCODE '=  100 )
{
	w "Ошибка GRANT: StatusCode="_sc,!
	q  0 
}
#;
q  1 
}
Примечания:
1. namespace должно быть в виде "<имя_машины>:<имя_CACHE>^<имя_области>".
2. Если не нужны SQL-отображения, то можно нужно убрать условие (DictCls.ClassType = 'view').
...
Рейтинг: 0 / 0
16.02.2010, 11:26
    #36471973
2acid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
Если автор не против, размещусь в его теме.

- Делаю компоненты\движек в области скажем COMP
- Делаю область для проекта скажем PRJ
- Делаю мэпинг для области PRJ пакетов и глобалов из области COMP

В области PRJ я имею доступ к данным из области COMP, но компоненты "не видятся" (ошибка при компиляции: "ОШИБКА #6235: Непредвиденная область для тега ...").

Что нужно "намэпить" еще ? или что прописать, что бы были видны компоненты ?
...
Рейтинг: 0 / 0
16.02.2010, 12:46
    #36472207
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
2acid,

я не против,
но в Вашем случае это не заслуга мэпинга, это недоописание, если можно так выразится.
скорее всего Вы используете собственные компоненты, если да то нужно прописать дополнительный xmlns в теге <page>
например xmlns:demo="http://www.intersystems.com/zendemo , это при условии что в компоненте у Вас прописано:
Код: plaintext
1.
2.
3.
4.
5.
6.
Class WEB.Component.gbDataCombo Extends %ZEN.Component.dataCombo
{

/// This is the XML namespace for this component.
Parameter NAMESPACE = "http://www.intersystems.com/zendemo";
....
}
...
Рейтинг: 0 / 0
16.02.2010, 12:58
    #36472252
2acid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
замэпил еще глобал oddXML и компоненты стали доступны. Не знаю на сколько это правильный шаг ...
...
Рейтинг: 0 / 0
16.02.2010, 13:00
    #36472258
2acid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
Ymka20072acid,

я не против,
но в Вашем случае это не заслуга мэпинга, это недоописание, если можно так выразится.
скорее всего Вы используете собственные компоненты, если да то нужно прописать дополнительный xmlns в теге <page>
например xmlns:demo="http://www.intersystems.com/zendemo , это при условии что в компоненте у Вас прописано:
Код: plaintext
1.
2.
3.
4.
5.
6.
Class WEB.Component.gbDataCombo Extends %ZEN.Component.dataCombo
{

/// This is the XML namespace for this component.
Parameter NAMESPACE = "http://www.intersystems.com/zendemo";
....
}


это как раз прописано, и параметр NAMESPACE заполнен у кажого компонента, и схема в page указана.
...
Рейтинг: 0 / 0
16.02.2010, 13:14
    #36472302
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что нужно намэпить?
может лучше сделать так:

1. создать БД1 для программ, классов
2. создать БД2 для глобалов
3. создать ОБЛАСТЬ,
4. [Домашняя страница] > [Конфигурация] > [Области] > [Редактировать область]
прописать БД1 - для программ
прописать БД2 - для глобалов
5. остальное размэпить как нужно

у меня так и работает нормально
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / что нужно намэпить? / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]