Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Кто как хранит пароли?  [new]
Leshgan
Member

Откуда: Краснодар
Сообщений: 129
Стоит задача входа в клиентскую программу каждому юзеру со своим логином и паролем.
Из соображений безопасности, на сервере стоит Authentication Windows Only (без SQL Server and Windows).
Кто как справляется с задачей входа в программу под своим паролем?
Понятно, что надо в базе делать таблицу с юзерами и паролями.
Сразу вопросы:
- как шифровать пароли?
- что еще учесть при создании этой таблицы, чтобы можно было отслеживать "деятельность" юзеров?
2 дек 05, 12:02    [2134514]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
Timon
Member

Откуда: Dushanbe TJK
Сообщений: 2688
А приложение под каким ЛОГИНОМ будет работать?

автор
на сервере стоит Authentication Windows Only (без SQL Server and Windows).

автор
- как шифровать пароли?

не надо ничего шифровать за Вас это сделает SQL и Windows
2 дек 05, 12:09    [2134555]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
Leshgan
Member

Откуда: Краснодар
Сообщений: 129
не надо ничего шифровать за Вас это сделает SQL и Windows

Ммм, я может неудачно объясняю.
Дело в том, что в домен (у нас) зайти не проблема. Поэтому нужно, чтобы сама программа еще требовала логина и пароля (отличного от доменного), поэтому то, что сам SQL Server хранит зашифрованным немного не то.
Например ситуация. Включенный компьютер, подходит другой юзер, не тот, за кем закреплен этот комп и входит в программу под своим логином и паролем (заметьте, комп уже в домене), то коннект к базе будет под доменным именем и я не смогу отследить кто именно творил что-то...
Надеюсь понятно объясняю.
Или подскажите где у меня изначально не верна мысль.
Спасибо.
2 дек 05, 12:15    [2134605]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
Timon
Member

Откуда: Dushanbe TJK
Сообщений: 2688
Тогда ВАШЕ ПРИЛОЖЕНИЕ всегда будет подключаться под одним логином, что не есть безопасно.....

Добавьте SQL авторизацию, и пускайте юзеров под SQL авторизацией, тогда хлопот меньше и легче отслеживать "деятельность" юзеров
2 дек 05, 12:20    [2134636]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62905
Leshgan

Включенный компьютер, подходит другой юзер, не тот, за кем закреплен этот комп и входит в программу под своим логином и паролем (заметьте, комп уже в домене), то коннект к базе будет под доменным именем и я не смогу отследить кто именно творил что-то...

Проблема административная, и ничего не надо отслеживать, пусть первый пользователь за свои ошибки отвечает административно.
Или ты думаешь, что, что-то изменится для аналогичной ситуации
Включенный компьютер, запущена программа, подходит другой юзер, не тот, за кем закреплен этот комп? А будет именно так.
2 дек 05, 12:21    [2134642]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
Glory
Member

Откуда: Estonia
Сообщений: 96927
Например ситуация. Включенный компьютер, подходит другой юзер, не тот, за кем закреплен этот комп и входит в программу под своим логином и паролем (заметьте, комп уже в домене), то коннект к базе будет под доменным именем и я не смогу отследить кто именно творил что-то...

Уверяю вас, что после того, как пару пользователей будут оштрафованы за то, что способствовали(вольно или невольно) работе под своим сетевым акаунтом другим пользователям, то число таких "добряков" резко сойдет на нет.
Все, что вам нужно, это просто вести аудит действий пользователей в вашей базе. Тогда пользователь Mydomain\Vasja сам будет ревностно следить за тем, чтобы не отвечать за действия своего соседа Mydomain\Petja.
2 дек 05, 12:21    [2134647]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 32615
Glory
Например ситуация. Включенный компьютер, подходит другой юзер, не тот, за кем закреплен этот комп и входит в программу под своим логином и паролем (заметьте, комп уже в домене), то коннект к базе будет под доменным именем и я не смогу отследить кто именно творил что-то...

Уверяю вас, что после того, как пару пользователей будут оштрафованы за то, что способствовали(вольно или невольно) работе под своим сетевым акаунтом другим пользователям, то число таких "добряков" резко сойдет на нет.
Все, что вам нужно, это просто вести аудит действий пользователей в вашей базе. Тогда пользователь Mydomain\Vasja сам будет ревностно следить за тем, чтобы не отвечать за действия своего соседа Mydomain\Petja.

+1
2 дек 05, 12:40    [2134783]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
Respect...
к тому же никто не мешает при логине программы провести и виндовую аутентификацию еще раз
2 дек 05, 13:22    [2135036]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
Leshgan
Member

Откуда: Краснодар
Сообщений: 129
Большое спасибо, я, в принципе так и думал.
Добавьте SQL авторизацию, и пускайте юзеров под SQL авторизацией, тогда хлопот меньше

а так же
Уверяю вас, что после того, как пару пользователей будут оштрафованы за то, что способствовали(вольно или невольно) работе под своим сетевым акаунтом другим пользователям, то число таких "добряков" резко сойдет на нет.

Буду думать что выбрать из двух вариантов. Проще всего, конечно, первый, так как не надо поднимать административный вопрос по работе юзеров.


Господа, а как на счет шифрования строки всё таки?
Это уже для общего развития
2 дек 05, 13:48    [2135186]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4514
читайте BOL разделы
sp_addlogin
Encription
Encription property

Многое сразу станет ясно...
2 дек 05, 15:04    [2135648]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 21874
Блог
Leshgan
Господа, а как на счет шифрования строки всё таки?
Это уже для общего развития

Что-то вроде этого
-- Создаем таблицу "Пользователи"
CREATE TABLE [USERS] (
	[ID_USER]	smallint	IDENTITY(1,1) PRIMARY KEY,	-- идентификатор пользователя
	[LOGIN]		varchar(10)	NOT NULL UNIQUE,	-- логин пользователя
	[ENCRIPTPASS]	varbinary(256)	NOT NULL,		-- зашифрованный пароль
	[STATUS]	tinyint		NOT NULL,		-- статус пользователя
	[SURNAME]	varchar(80)	NOT NULL,		-- ФИО пользователя
	[TEL]		varchar(20)	NOT NULL,		-- телефон пользователя
	[ACTIVE]	bit		NOT NULL DEFAULT 1	-- активный(1)/удален(0)
)
GO

EXEC sp_addextendedproperty 'MS_Description','Идентификатор пользователя',	'user', dbo, 'table', 'USERS', 'column', [ID_USER]
EXEC sp_addextendedproperty 'MS_Description','Логин пользователя', 		'user', dbo, 'table', 'USERS', 'column', [LOGIN]
EXEC sp_addextendedproperty 'MS_Description','Зашифрованный пароль', 		'user', dbo, 'table', 'USERS', 'column', [ENCRIPTPASS]
EXEC sp_addextendedproperty 'MS_Description','Статус пользователя', 		'user', dbo, 'table', 'USERS', 'column', [STATUS]
EXEC sp_addextendedproperty 'MS_Description','Фамилия пользователя',		'user', dbo, 'table', 'USERS', 'column', [SURNAME]
EXEC sp_addextendedproperty 'MS_Description','Телефон пользователя',		'user', dbo, 'table', 'USERS', 'column', [TEL]
EXEC sp_addextendedproperty 'MS_Description','Признак активности', 		'user', dbo, 'table', 'USERS', 'column', [ACTIVE]

-- Добавление пользователя
CREATE PROCEDURE [AddUser]
	@LOGIN		varchar(10),	-- Логин пользователя
	@PASS		varchar(8),	-- Пароль пользователя
	@STATUS		tinyint,	-- Статус пользователя
	@SURNAME	varchar(80),	-- ФИО пользователя
	@TEL		varchar(20)	-- Телефон пользователя
AS
BEGIN
  SET NOCOUNT ON
  INSERT INTO [USERS]([LOGIN], [ENCRIPTPASS], [STATUS], [SURNAME], [TEL])
    VALUES (UPPER(@LOGIN), pwdencrypt(UPPER(@PASS)), @STATUS, @SURNAME, @TEL)
END
GO

-- Процедура аутентификации (проверки введенного пароля),
-- возвращает идентификатор пользователя, статус пользователя, ФИО, телефон
ALTER PROCEDURE [CheckPassword]
	@LOGIN		varchar(128),		-- Логин пользователя
	@PASS		varchar(128),		-- Пароль пользователя
	@ID_USER	smallint	OUTPUT,	-- Идентификатор пользователя
	@STATUS		tinyint		OUTPUT,	-- Статус пользователя
	@SURNAME	varchar(80)	OUTPUT,	-- ФИО
	@TEL		varchar(20)	OUTPUT
AS
BEGIN
  SET NOCOUNT ON
  SELECT  @ID_USER = [ID_USER],
          @STATUS  = [STATUS],
          @SURNAME = [SURNAME],
          @TEL     = [TEL]
    FROM  [USERS]
    WHERE [LOGIN] = UPPER(@LOGIN) AND pwdcompare(UPPER(@PASS), [ENCRIPTPASS]) = 1
END
2 дек 05, 15:15    [2135756]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
MsDatabaseru
Member

Откуда: Hobby.MsDatabase.ru
Сообщений: 10908
использую SQL авторизацию
но в добавок храню пароли , в отдельной табличке
код сотрудника
логин
пароль
по каждому списки
- баз и ролей
- доступ к терминальным серверам


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

а также печать служебной записки в которой логин пароль и краткое изложение приказа об ответственности за разглашение пароля

на наиболее важных таблицах аудит изменений данные, логин, время , рабочая станция

есть задумка отслеживать типовые подключения приложение + логин + рабочая станция - вести табличку кто откуда подключается, при возниконовении нетиповой ситуации например подключение QA от рабочей станции юзера который должен использовать аксессовского клиента - мне письмо
2 дек 05, 15:50    [2136004]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
Sargos
Member

Откуда: Саратов
Сообщений: 559
Изначально неверная постановка вопроса.

Авторизация уже заложена и в SQL и в WIN, пользуйся любой.

Есть домен, замечательно.

Создавай пользователей MSSQL с WIN авторизацией, кто не нужно не войдет,
если вошел в домен не оставляй компьютер без присмотра (какой смысл делать дополнительноую авторизацию, если пользователь в любой момент может отойти?)

Не нравится WIN авторизация пользуйся встроенной MSSQL.

Если нужны какие-то дополнительные свойства пользователей, сделай надстройку над sysusers.
2 дек 05, 18:20    [2136915]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
savad
Member

Откуда:
Сообщений: 11
imho заводить пользователей в БД не есть хорошо, т.к. пользователи получают доступ к БД в обход интерфейса
2 дек 05, 22:20    [2137641]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
Timon
Member

Откуда: Dushanbe TJK
Сообщений: 2688
savad
imho заводить пользователей в БД не есть хорошо, т.к. пользователи получают доступ к БД в обход интерфейса


Очень даже "есть хорошо". Делаем представления и процедуры, и даём доступ к ним. И никакого "обхода интерфейса". Самое главное грамотно всё сделать.
3 дек 05, 14:33    [2138231]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
savad
Member

Откуда:
Сообщений: 11
Timon
И никакого "обхода интерфейса"
ну как же нет если пишется клиентское ПО, через которое предполагается доступ, а пользователь создает прямое соединение с БД, и делает select к view, как же вы зарегистрируете сее событие?
3 дек 05, 14:51    [2138252]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
Timon
Member

Откуда: Dushanbe TJK
Сообщений: 2688
автор
select к view, как же вы зарегистрируете сее событие?

Зачем регистрировать select к view? Если нада С2 аудит ставьте и радуйтесь, или профайлер запускайте.

Между прочим в view можно показывать пользователю ТОЛЬКО ТО ЕМУ РАЗРЕШЕНО СМОТРЕТЬ. и не только на уровне полей (столбцов), НО И СТРОК.
3 дек 05, 15:12    [2138274]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
Br. Potemkin
Member

Откуда: Таганрог
Сообщений: 310
Кстати да, есть в SQL какие-нить функции шифрования/дешифрования данных?
Чтобы не хранить явно логины и пароли в таблице.
3 дек 05, 15:21    [2138284]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
savad
Member

Откуда:
Сообщений: 11
хех профайлер, бы помог когда у вас одна задачка работающая с данными, если у вас их десяток другой
Timon
Зачем регистрировать select к view?
для полного аудита действий пользователя.
2 Br. Potemkin а чем пост Критик не устраивает, см. выше.
3 дек 05, 15:31    [2138303]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
Timon
Member

Откуда: Dushanbe TJK
Сообщений: 2688
Смотрите пост SanyL и Критик-а
3 дек 05, 15:34    [2138309]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62905
Хранить пароли - себе вредить.
3 дек 05, 15:35    [2138313]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
Timon
Member

Откуда: Dushanbe TJK
Сообщений: 2688
2Anatoly Podgoretsky ЗОЛОТЫЕ СЛОВА.
всё зашифровано можно расшифровать.

Я например храню только User ID, а паролем пусть СКЛ занимается это его проблемы :)

savad
для полного аудита действий пользователя.

ИМХО, не туда смотрите, а если узер начнёт по 100 селектов секунду делать?!

я думаю, если дело на то пошло, то лучше уж воспользоваться статьёй Glory "Триггер на логин".
3 дек 05, 15:41    [2138320]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
savad
Member

Откуда:
Сообщений: 11
Timon
ИМХО, не туда смотрите, а если узер начнёт по 100 селектов секунду делать?!
дык вот как раз при обходе интерфейса такое и получаем.
ps спасибо за ссылку.
3 дек 05, 15:56    [2138336]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62905
Timon
2Anatoly Podgoretsky ЗОЛОТЫЕ СЛОВА.
всё зашифровано можно расшифровать.

Поэтому не надо хранить пароль, а надо хранить хеш и то если это надо.
3 дек 05, 16:18    [2138373]     Ответить | Цитировать Сообщить модератору
 Re: Кто как хранит пароли?  [new]
MsDatabaseru
Member

Откуда: Hobby.MsDatabase.ru
Сообщений: 10908
Anatoly Podgoretsky
Timon
2Anatoly Podgoretsky ЗОЛОТЫЕ СЛОВА.
всё зашифровано можно расшифровать.

Поэтому не надо хранить пароль, а надо хранить хеш и то если это надо.


не совсем понятно почему.
чем плохо что я храню пароли?
неважно где (в запечатанном конверте, зашифрованном файле, недоступной талице), важно что логины и пароли никому не доступны до тех пор пока
не понадобится их восстановить в случае аварии.

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

в моем случае юзеры сервера чьи пароли хранятся в админовской таблице имеют весьма ограниченный доступ и используются не столько для защиты данных от несанкционированного просмотра сколько для удобства - горизонтальной фильтрации данных и определения доступности функционала клиентской программы.

в случае же если надо будет по быстрому применить тех же юзеров к другому серверу или базе такого рода данные помогут автоматизировать этот процесс
5 дек 05, 09:27    [2140103]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить
 
Лучший учебный центр Microsoft!
Новейшие курсы Microsoft SQL Server 2014!
ОЧЕНЬ привлекательные цены на курсы Oracle — от 26 тыс.руб.!
Все курсы по базам данных: Microsoft SQL Server 2014, Oracle, IBM DB2, Access, MySql