Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Новый пользователь в Microsoft SQL

6.0K
20 сентября 2007 года
Tramp
71 / / 25.07.2006
Я программирую на C++ Builder 6.0. Ответе, пожалуйста на вопрос:
Возможно ли с помошью ADO добавить нового пользователя в SQL Server
и прописать его права доступа?

...и подскажите в какую сторону копать :-)
Заранее благодарю.
309
21 сентября 2007 года
el scorpio
1.1K / / 19.09.2006
Если данное действие выполняется командой, то копай в сторону AdoCommand.
Если данный объект не понимает иных команд, кроме стандартных SQL, то можно прописать в БД макрос (функцию) "Добавить_Пользователя" с требуемыми параметрами. Хранимые процедуры данный компонент вызывает без проблем. Параметры процедуры прописываются в свойстве Parameters
255
21 сентября 2007 года
Dart Bobr
1.4K / / 09.04.2004
Цитата: Tramp
Я программирую на C++ Builder 6.0. Ответе, пожалуйста на вопрос:
Возможно ли с помошью ADO добавить нового пользователя в SQL Server
и прописать его права доступа?

...и подскажите в какую сторону копать :-)
Заранее благодарю.



Насколько я помню, в MSSQL Server, информация о базе данных хранится в ней самой в специальных таблицах.. Список юзеров тоже определен там же.. попробуй стандартной тулзой посмотри имена системных таблиц.. С ними можна будет работать обычным запросом.

2.1K
21 сентября 2007 года
vectoroc
234 / / 25.07.2006
SQL код будет примерно такой
 
Код:
CREATE LOGIN [test] WITH PASSWORD=N'test', DEFAULT_DATABASE=[db_test], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON
GO
EXEC master..sp_addsrvrolemember @loginame = N'test', @rolename = N'sysadmin' -- или что тебе надо
GO
USE [db_test]
GO
CREATE USER [test] FOR LOGIN [test]
GO

Как вариант просто через exec.
Советую поставить SQL Server Management Studio Express, качается бесплатно с сайта МС. Он позволяет в удобном виде конфигурировать сервер, и при этом изменения просматривать в виде SQL
6.0K
21 апреля 2008 года
Tramp
71 / / 25.07.2006
Код:
Query1->Close();
         Query1->SQL->Clear();
         Query1->SQL->Add("USE master");
         Query1->SQL->Add("GO");
         Query1->SQL->Add("sp_grantlogin \'Domen\\" + Login + "\'");
         Query1->SQL->Add("GO");
         Query1->SQL->Add("sp_defaultdb \'Domen\\" + Login + "\', \'DataName\'");
         Query1->SQL->Add("GO");
         Query1->SQL->Add("USE DataName");
         Query1->SQL->Add("GO");
         Query1->SQL->Add("sp_grantdbaccess \'Domen\\" + Login + "\', \'" + Login + "\'");
         Query1->SQL->Add("GO");

          try
          {
           //как выполнить этот запрос

          }
          catch(...)
         {
          ShowMessage("Error");
         }

как выполнить этот запрос?
ни
Query1->Open();
ни
Query1->ExecSQL();
не прокатывают :(
6.0K
06 мая 2008 года
Tramp
71 / / 25.07.2006
Код:
Query->Close();
      Query->SQL->Clear();
      Query->SQL->Add("USE master");
      Query->SQL->Add("EXEC sp_grantlogin \'" + Domen->Text + "\\" +Names->Strings + "\'");
      Query->SQL->Add("EXEC sp_defaultdb \'" + Domen->Text + "\\" + Names->Strings + "\', \'" + BaseName->Text + "\'");
      Query->SQL->Add("USE DataStarter");
      Query->SQL->Add("EXEC sp_grantdbaccess \'" + Domen->Text + "\\" + Names->Strings + "\', \'" + Names->Strings + "\'");
      try
      {
        Query->ExecSQL();
      }
      catch(...)
      {
        ShowMessage("So fucking what?");
        break;
      }


Вот так всё работает.

Ни кто не знает как решить тривиальную задачу, а именно: выполнить проверку существования уже зарегистрированного пользователя?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог