Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пользователю "sa" не удалось войти в систему 
V
    Опции темы
Secret
  Дата 18.10.2007, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 14.8.2007

Репутация: нет
Всего: нет



Сразу же хотел бы сказать то в Базах данных я пока что новичок, с вытекающими с этого последствиями, поэтому прошу не судить строго если что то не совсем правильно скажу. Приму все замечания и пожелания  smile 

И так, ближе к сабжу:

Код

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Orders_Customers]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[Orders] DROP CONSTRAINT FK_Orders_Customers
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Orders_Inventory]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[Orders] DROP CONSTRAINT FK_Orders_Inventory
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetPetName]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[GetPetName]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Orders]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Orders]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Customers]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Customers]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Inventory]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Inventory]
GO

CREATE DATABASE [Cars]  ON (NAME = N'Cars_Data', FILENAME =N'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Cars_Data.MDF' , 
SIZE = 2, FILEGROWTH = 10%) 

LOG ON (NAME = N'Cars_Log', FILENAME= N'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Cars_Log.LDF' , 
SIZE = 1, FILEGROWTH = 10%)
GO
use[Cars]
CREATE TABLE [dbo].[Customers] (
    [FirstName] [char] (20) NULL ,
    [LastName] [char] (20) NULL ,
    [CustID] [int] NOT NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Inventory] (
    [CarID] [int] NOT NULL ,
    [Make] [char] (20) NULL ,
    [Color] [char] (20) NULL ,
    [PetName] [char] (20) NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Orders] (
    [OrderID] [int] NOT NULL ,
    [CarID] [int] NULL ,
    [CustID] [int] NULL 
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[Customers] WITH NOCHECK ADD 
    CONSTRAINT [PK_Customers] PRIMARY KEY  CLUSTERED 
    (
        [CustID]
    )  ON [PRIMARY] 
GO

ALTER TABLE [dbo].[Inventory] WITH NOCHECK ADD 
    CONSTRAINT [PK_Inventory] PRIMARY KEY  CLUSTERED 
    (
        [CarID]
    )  ON [PRIMARY] 
GO

ALTER TABLE [dbo].[Orders] WITH NOCHECK ADD 
    CONSTRAINT [PK_Orders] PRIMARY KEY  CLUSTERED 
    (
        [OrderID]
    )  ON [PRIMARY] 
GO

ALTER TABLE [dbo].[Orders] ADD 
    CONSTRAINT [FK_Orders_Customers] FOREIGN KEY 
    (
        [CustID]
    ) REFERENCES [dbo].[Customers] (
        [CustID]
    ),
    CONSTRAINT [FK_Orders_Inventory] FOREIGN KEY 
    (
        [CarID]
    ) REFERENCES [dbo].[Inventory] (
        [CarID]
    )
GO

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO


CREATE PROCEDURE GetPetName
@carID int,
@petName char(20) output

AS

SELECT @petName = PetName from Inventory where CarID = @carID


GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO
use[Cars]
INSERT INTO Inventory (carID, Make, Color, PetName)
VALUES (0, 'BMW', 'Red', 'Chucky')
GO

INSERT INTO Inventory (carID, Make, Color, PetName)
VALUES (1, 'BMW', 'Green', 'Snake')
GO

INSERT INTO Inventory (carID, Make, Color, PetName)
VALUES (2, 'Viper', 'Red', 'Zippy')
GO

INSERT INTO Inventory (carID, Make, Color, PetName)
VALUES (3, 'BMW', 'Pink', 'Buddha')
GO

INSERT INTO Inventory (carID, Make, Color, PetName)
VALUES (4, 'Colt', 'Rust', 'Rusty')
GO

INSERT INTO Customers (custID, FirstName, LastName)
VALUES (0, 'Mike', 'Larson')
GO

INSERT INTO Customers (custID, FirstName, LastName)
VALUES (1, 'Amy', 'Smith')
GO

INSERT INTO Customers (custID, FirstName, LastName)
VALUES (2, 'Kandi', 'Nash')
GO

INSERT INTO Orders (orderID, custID, carID)
VALUES (0, 0, 0)
GO

INSERT INTO Orders (orderID, custID, carID)
VALUES (1, 1, 4)
GO



С помощью этого скрипта в SQL Server Management Studio создал новую базу Cars. Правда при создании базы бала обнаружена ошибка:
Код

Сообщение 1803, уровень 16, состояние 1, строка 2
Ошибка операции CREATE DATABASE. Размер первичного ключа должен быть как минимум 3 МБ, чтобы вместить копию базы данных model.
Сообщение 911, уровень 16, состояние 1, строка 1
Не удалось найти запись в таблице sysdatabases для базы данных "Cars". Запись с таким именем не найдена. Убедитесь, что имя введено правильно.
Сообщение 4902, уровень 16, состояние 1, строка 2
Не удалось найти объект "dbo.Customers", так как он не существует, или отсутствуют разрешения.
Сообщение 1767, уровень 16, состояние 0, строка 2
Внешний ключ "FK_Orders_Customers" ссылается на недопустимую таблицу "dbo.Customers".
Сообщение 1750, уровень 16, состояние 0, строка 2
Нельзя создать ограничение. См. предыдущие ошибки.
Сообщение 911, уровень 16, состояние 1, строка 1
Не удалось найти запись в таблице sysdatabases для базы данных "Cars". Запись с таким именем не найдена. Убедитесь, что имя введено правильно.

(строк обработано: 1)

(строк обработано: 1)

(строк обработано: 1)

(строк обработано: 1)
Сообщение 208, уровень 16, состояние 1, строка 2
Недопустимое имя объекта "Customers".
Сообщение 208, уровень 16, состояние 1, строка 2
Недопустимое имя объекта "Customers".
Сообщение 208, уровень 16, состояние 1, строка 2
Недопустимое имя объекта "Customers".

(строк обработано: 1)

(строк обработано: 1)


но подправив значение параметра с size=2 на size=3 в следующей строке того же скрипта

Код

CREATE DATABASE [Cars]  ON (NAME = N'Cars_Data', FILENAME =N'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Cars_Data.MDF' , 
SIZE = 3, FILEGROWTH = 10%) 


база создалась на ура.

Дали с помощью VS2005 открыл готовый проект-пример. Когда запустил его то получил такую исключительную ситуацию

Код

***** Fun with Data Readers *****


Необработанное исключение: System.Data.SqlClient.SqlException: Пользователю "sa"
 не удалось войти в систему. Пользователь не связан с доверенным соединением с SQL Server.

 . . .


Что было сделано не так? 



Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  data.rar 72,27 Kb
PM MAIL   Вверх
SpaceSpace
Дата 19.10.2007, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 10.4.2007
Где: Самара

Репутация: нет
Всего: 10



Перво-наперво.
Включай Manegement Studio,
Коннектись к серверу.
Открывай папочку Security.
Выбирай пользователя sa.
Правой кнопкой - Properties. 
Там в списке выбирай status,
и где Permissions to connect to database engine
- выбирай GRANT
smile
это для начала


--------------------
Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение.
70-565
MCPD Enterprise 3.5 
PM MAIL   Вверх
Secret
Дата 19.10.2007, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 14.8.2007

Репутация: нет
Всего: нет



SpaceSpace, сделал так как ты писал, но пока что тот же exception...

Код

***** Fun with Data Readers *****
Необработанное исключение: System.Data.SqlClient.SqlException: Пользователю "sa"
 не удалось войти в систему. Пользователь не связан с доверенным соединением с SQL Server.
 . . .

PM MAIL   Вверх
HAL707
Дата 19.10.2007, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 6.9.2007

Репутация: нет
Всего: 4



Строку подключения к БД можешь привести?
PM MAIL   Вверх
Secret
  Дата 19.10.2007, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 14.8.2007

Репутация: нет
Всего: нет



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

В исходнике - файл прикреплённый к первому посту, строка подключения была не совсем полна.

  Когда я добавил новый источник данных в программу, то автоматически создаётся конфигурационный файл, который содержит правильную строку подключения. Все что остаться сделать в программе, это программными средствами, используя индексатор ConfigurationManager прочитать ConnectionString.
  Но можно и самому создать строку подключения с помощью экземпляра класа SqlConnectionStringBuilder. В моей ситуации  было сделано как раз так.

Не полная строка подключения:
Код

         // Create a connection string via the builder object.
            SqlConnectionStringBuilder cnStrBuilder =
                new SqlConnectionStringBuilder();
            cnStrBuilder.UserID = "sa";
            cnStrBuilder.Password = "";
            cnStrBuilder.InitialCatalog = "Cars";
            cnStrBuilder.DataSource = "(local)";
            cnStrBuilder.ConnectTimeout = 5;



Строка подключения, которая позволит безошибочно подключиться к базе:
Код

// Create a connection string via the builder object.
            SqlConnectionStringBuilder cnStrBuilder =
                new SqlConnectionStringBuilder();
            cnStrBuilder.UserID = "sa";
            cnStrBuilder.Password = "";
            cnStrBuilder.InitialCatalog = "Cars";
            cnStrBuilder.DataSource = "(local)";
            cnStrBuilder.ConnectTimeout = 5;
            
            cnStrBuilder.IntegratedSecurity = true;


И дело в шляпе, точнее говоря, в последней строчке последнего исходника smile)

Свойство cnStrBuilder.IntegratedSecurity - Вот что по этому поводу пишет справка:
Код

 Gets or sets a Boolean value that indicates whether User ID and Password are specified in the connection (when false) or whether the current Windows account credentials are used for authentication (when true). 


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

P.S. SpaceSpace и HAL707 - огромнейшее спасибо Вам за предоставленную помощь!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0922 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.