Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Лог действий пользователей на сервере, редактирование пользователей запросами.  [new]
EviGL
Member

Откуда:
Сообщений: 7
У меня есть программа (BCB, как бы то ни стыдно было признать), обращающаяся к серверу MS SQL.
Для неё надо реализовать такие функции:
1) Журнал посещений/изменений. Мол, зашёл тот-то с таким-то логином сделал то-то (или хотя бы просто историю входов).
Соответственно, надо получить это как результат какого-либо запроса.
2) При логине под админом чтобы можно было посмотреть другие логины/пользователей, назначить им определённые роли в рабочей БД, добавить/удалить этих пользователей. То есть тоже нужны какие-то запросы.

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

Я не прошу что-то делать за меня, хотя бы конкретные линки на справку по этому делу. Я пытался искать по мануалам SQL server'а, мозг взрывается, а даже близкого к требуемому не нахожу...
30 май 12, 12:59    [12636743]     Ответить | Цитировать Сообщить модератору
 Re: Лог действий пользователей на сервере, редактирование пользователей запросами.  [new]
Glory
Member

Откуда:
Сообщений: 104751
EviGL
Мол, зашёл тот-то с таким-то логином сделал то-то (или хотя бы просто историю входов).
Соответственно, надо получить это как результат какого-либо запроса.

"сделал то-то" - это какие команды выполнял или в каком поле таблицы поменял А на В ?
30 май 12, 13:04    [12636798]     Ответить | Цитировать Сообщить модератору
 Re: Лог действий пользователей на сервере, редактирование пользователей запросами.  [new]
EviGL
Member

Откуда:
Сообщений: 7
Glory,
да, это прежде всего редактирование таблиц. Полный текст команд не нужен.
Мне это всё для учёбы, так что чем более простое решение, тем лучше. А что именно там будет не так-то и важно.
30 май 12, 13:07    [12636831]     Ответить | Цитировать Сообщить модератору
 Re: Лог действий пользователей на сервере, редактирование пользователей запросами.  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
http://msdn.microsoft.com/en-us/library/cc280386.aspx
30 май 12, 13:18    [12636940]     Ответить | Цитировать Сообщить модератору
 Re: Лог действий пользователей на сервере, редактирование пользователей запросами.  [new]
EviGL
Member

Откуда:
Сообщений: 7
Программист-Любитель,

Попробовал, создал аудит, создал спецификацию ему, на какие-то действия, для проверки тут же сделал это действие, получил в логе кучу всякой нечитаемой штуки:
Дата,Источник,Серьезность,Сообщение,Категория,Событие,Пользователь,Компьютер
05/30/2012 18:58:29,MSSQLSERVER,Аудит успешных операций,Событие аудита: event_time:2012-05-30 11:58:28.4265645
sequence_number:0
action_id:AUSC
succeeded:true
permission_bitmask:0
is_column_permission:false
session_id:52
server_principal_id:261
database_principal_id:0
target_server_principal_id:0
target_database_principal_id:0
object_id:0
class_type:A
session_server_principal_name:EviGL-PC\EviGL
server_principal_name:EviGL-PC\EviGL
server_principal_sid:010500000000000515000000f955411537857e08e45f61afe8030000
database_principal_name:
target_server_principal_name:
target_server_principal_sid:
target_database_principal_name:
server_instance_name:EVIGL-PC
database_name:
schema_name:
object_name:
statement:
additional_information:<action_info xmlns="http://schemas.microsoft.com/sqlserver/2008/sqlaudit_data"><session><![CDATA[Audit_Entrants$A]]></session><action>event enabled</action><object><![CDATA[audit_event]]></object></action_info>
.,Нет,1073775029,,EviGL-PC

Не понимаю, как это относится к тому, что я создал в табличке запись...
Неужели нету какого-нибудь простого способа вести логи сервера? Чтобы они просто показывались текстом? Как те же "Журналы SQL Server"
А может что-то я не то со спецификацией намудрил, создавал я её вот этим:
USE Entrants ; 
GO
-- Create the database audit specification. 
CREATE DATABASE AUDIT SPECIFICATION Audit_Entrants
FOR SERVER AUDIT Audit_Entrants
ADD (SELECT , INSERT, DELETE, UPDATE
     ON Cities BY dbo, db_owner, public) 
WITH (STATE = ON) ; 
GO


Так или иначе, ничего не понятно.
А что по поводу второго вопроса? Можно ли командами создавать/удалять пользователей и имена входа?
30 май 12, 16:10    [12638634]     Ответить | Цитировать Сообщить модератору
 Re: Лог действий пользователей на сервере, редактирование пользователей запросами.  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
EviGL
Программист-Любитель,
Неужели нету какого-нибудь простого способа вести логи сервера? Чтобы они просто показывались текстом? Как те же "Журналы SQL Server"
Так или иначе, ничего не понятно.
А что по поводу второго вопроса? Можно ли командами создавать/удалять пользователей и имена входа?


А зачем серверу логи того что делал клиент с данными да еще в текстовом виде??
Вам нужно вы и пищите обработку изменений клиетами данных.
Все инструменты для этого есть.

EviGL
Программист-Любитель,
А что по поводу второго вопроса? Можно ли командами создавать/удалять пользователей и имена входа?


можно sp_addlogin, sp_adduser или если сервер новее 2000 create login\user
30 май 12, 16:37    [12638906]     Ответить | Цитировать Сообщить модератору
 Re: Лог действий пользователей на сервере, редактирование пользователей запросами.  [new]
EviGL
Member

Откуда:
Сообщений: 7
WarAnt
А зачем серверу логи того что делал клиент с данными да еще в текстовом виде??
Вам нужно вы и пищите обработку изменений клиетами данных.

Ну хотя бы логи входов/выходов. Я не могу понять, где взять все инструменты для этого... В двух словах, что такое аудит и для чего он обычно используется? Есть что-нибудь более понятное, чем msdn по этой теме?

WarAnt
можно sp_addlogin, sp_adduser или если сервер новее 2000 create login\user

Спасибо. А как получить список существующих пользователей? Имя пользователя, под которым осуществлён вход?
30 май 12, 16:50    [12639016]     Ответить | Цитировать Сообщить модератору
 Re: Лог действий пользователей на сервере, редактирование пользователей запросами.  [new]
EviGL
Member

Откуда:
Сообщений: 7
Нашёл команды sp_helpusers и sp_helplogins, но их нельзя использовать как таблицы для запроса. Почему?
30 май 12, 17:43    [12639441]     Ответить | Цитировать Сообщить модератору
 Re: Лог действий пользователей на сервере, редактирование пользователей запросами.  [new]
EviGL
Member

Откуда:
Сообщений: 7
Нашёл как выбрать текущего пользователя:
SELECT CURRENT_USER

Буквально подбором по SQL... А как узнать список всех юзеров и логинов?
30 май 12, 17:51    [12639495]     Ответить | Цитировать Сообщить модератору
 Re: Лог действий пользователей на сервере, редактирование пользователей запросами.  [new]
Glory
Member

Откуда:
Сообщений: 104751
EviGL
Нашёл команды sp_helpusers и sp_helplogins, но их нельзя использовать как таблицы для запроса. Почему?

Потому что это процедуры, а не команды
Таблицы же называются
sys.database_principals
sys.server_principals
30 май 12, 17:51    [12639497]     Ответить | Цитировать Сообщить модератору
 Re: Лог действий пользователей на сервере, редактирование пользователей запросами.  [new]
Glory
Member

Откуда:
Сообщений: 104751
EviGL
Буквально подбором по SQL...

Не хотите установить себе документацию продукта ?
30 май 12, 17:52    [12639502]     Ответить | Цитировать Сообщить модератору
 Re: Лог действий пользователей на сервере, редактирование пользователей запросами.  [new]
igr_ok
Member

Откуда:
Сообщений: 170
Вывожу список тех,кто работает с моей прогой/SQLсервером в данный момент.

select distinct nt_username as 'Имя пользователя', hostname as 'Сервер', program_name as 'Программа' from master.dbo.sysprocesses where dbid=db_id('DataBaseName')

Полезные ссылки
http://kbyte.ru/ru/Programming/Articles.aspx?id=45&mode=art
https://www.sql.ru/articles/mssql/2005/030701changeslogging.shtml#33
30 май 12, 17:54    [12639517]     Ответить | Цитировать Сообщить модератору
 Re: Лог действий пользователей на сервере, редактирование пользователей запросами.  [new]
EviGL
Member

Откуда:
Сообщений: 7
Glory,

Спасибо. Она у меня есть, вроде бы, у меня не получается ей нормально пользоваться. Я не понимаю, как я мог в ней найти эту информацию.


igr_ok,

Спасибо. Запрос работает у меня как-то не так, а ссылки посмотрю.
30 май 12, 18:53    [12639808]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить