Отправляет email-рассылки с помощью сервиса Sendsay

MS SQL Server

  Все выпуски  

MS SQL Server - дело тонкое...


Информационный Канал Subscribe.Ru

#213<<  #214

СОДЕРЖАНИЕ

1.СОВЕТЫ
1.1.Обеспечение безопасности репликации SQL Server 2000
1.2.SQL Server 2000: основы работы с представлениями
2.ССЫЛКИ НА СТАТЬИ
2.1.Статьи на русском языке
2.2.Англоязычные статьи
3.ФОРУМ SQL.RU
3.1.Самые популярные темы недели
3.2.Вопросы остались без ответа

СОВЕТЫ

Обеспечение безопасности репликации SQL Server 2000

По материалам статьи Marcin Policht: SQL Server 2000 Security - Part 9 - Replication Security
Перевод Александра Гладченко

Безопасность репликации - очень важная задача, которую нужно очень тщательно планировать. Давайте начнём с замечания о том, что процедуры создания/администрирование издателей, дистрибуторов и подписчиков (включая публикацию базы данных для репликации) доступны только для серверной роли sysadmin. После определения участников репликации, только члены роли sysadmin и члены роли db_owner публикуемой базы данных могут создавать и настраивать публикации. Мониторинг репликации доступен для членов серверной роли sysadmin и роли replmonitor базы данных distributor, которая создаётся автоматически, вместе с дистрибутором.

Дистрибутор создаётся в SQL Server Enterprise Manager с помощью опции "Configure Publishing, Subscribers and Distribution...", в пункте меню Tools -> Replication. Вы можете разместить издателя и дистрибутора на одном и том же компьютере, или использовать для дистрибутора отдаленный сервер. В последнем случае, издателя нужно сначала создать на сервере размещения дистрибутора. Сделать это можно на закладке Publishers диалогового окна Publisher and Distributor Properties, которое можно вызвать, выбрав опцию "Configure Publishing, Subscribers and Distribution...". Там Вы можете назначить издателей (из списка серверов, зарегистрированных в SQL Server Enterprise Manager), которых будет обслуживать дистрибутор. На закладке Distributor того же диалогового окна, Вы можете задать пароль подключения администратора, который будет использоваться издателями при подключении к дистрибутору, для его администрирования. На этих же закладках Вы можете увидеть опцию для создания нескольких базы данных distribution, выделенных для разных групп издателей (что повышает безопасность работы нескольких издателей с одним дистрибутором). При создании издателя, требуется определить логины пользователей, которые будут использовать агенты репликации для подключения к издателю. Аналогично, при создании подписчика, на закладке Subscribers диалогового окна Publisher and Distributor Properties, Вы должны установить контекст безопасности подключений агента к издателю/дистрибутору. Так как агенты репликации управляются заданиями SQL Server Agent, по умолчанию они работают в контексте безопасности учетной записи SQL Server Agent. Вы можете принять значение по умолчанию или изменить контекст подключения к SQL Server на другой, обладающий необходимым для этого набором разрешений. При создании публикаций можно разрешить существование анонимных подписчиков. Несмотря на то, что это упрощает управление публикацией, особенно когда подписчиков очень много, это негативно влияет на безопасность тиражируемых данных, и допустимо только после очень тщательного рассмотрения возможных последствий утечки информации.

Теперь давайте сделаем обзор требований безопасности для разных типов репликации. Начнём мы с общих для всех типов механизмов. Одним из таких механизмов является моментальный снимок, который используется в каждом типе репликации хотя бы один раз. Снимки обслуживаются программой Snapshot Agent, запускающейся на дистрибуторе, и имеют следующие требования безопасности:

  • Учетная запись контекста исполнения Snapshot Agent должна иметь на сервере издателя легитимный логин, и право на SELECT в тиражируемой публикации издаваемой базы данных. Для этого лучше всего подходит (в случае, если издатель и дистрибутор разнесены на разные компьютеры) используемая для запуска SQL Server Agent на сервере дистрибутора непривилегированная учётная запись пользователя домена (в контексте безопасности который будет работать Snapshot - агент, и которая является пользователем Windows NT 4.0, 2000 или более поздней версии). Для этой учётной записи на SQL сервере, являющемся издателем, должен быть создан логин с Windows аутентификацией, и ему нужно предоставить соответствующие права в публикуемой базе данных.

  • Snapshot Agent сохраняет тиражируемые данные в файлы, а также схемы и скрипты, создающие на подписчике статьи публикации. Эти файлы создаются издателем в сетевом ресурсе на дистрибуторе для размещения архива моментального снимка. Расположение этого ресурса может быть задано несколькими способами. Если издатель и дистрибутор находятся на одном компьютере, Вы получите запрос на указание расположения этого ресурса (Snapshot folder location) в мастере Configure Publishing and Distribution Wizard. Если они расположены на разных компьютерах, то местоположение папки для моментальных снимков можно определить в диалоговом окне Publisher Properties (в дополнение к контексту безопасности подключения агента репликации) при выборе издателей на сервере дистрибутора (как было показано выше). В этом же диалоговом окне, Вы можете указать необходимость использования издателем пароля для подключения к дистрибутору. Этот пароль будет назначен логину distributor_admin с SQL серверной аутентификацией и он входит в серверную роль sysadmin. Логин distributor_admin создаётся автоматически, при настройке репликации. Старайтесь использовать для этого логина криптостойкие пароли. Если нужно сменить этот пароль, используйте для этого только системную хранимую процедуру sp_changedistributor_password или закладку Distributor в диалоговом окне Publisher and Distributor Properties. По возможности, используйте для издателя доверительное подключение. Подключение без установленного пароля очень нежелательно, т.к. является очень большой уязвимостью сервера.
    Также Вы можете настраивать свойства дистрибутора и издателя при создании публикации, используя Create Publication Wizard или в диалоговом окне Create and Manage Publications. Эти два мастера доступны в меню Tools -> Wizards в контейнере Replication, или можно нажать правую кнопку мыши на контейнере Replication и выбрать пункт Configure Publishing, Subscribers and Distribution. Также Вы можете изменить эти параметры позже, изменив значения на закладке Snapshot Location в окне свойств публикации. Независимо от выбора альтернативного расположения снимка, папка снимка по умолчанию будет находиться в каталоге сервера - дистрибутора: "Program Files\Microsoft SQL Server\MSSQL\Repldata".
    Связанная с этим проблема безопасности заключается в том факте, что, по умолчанию, к этой папке обращаются через скрытый ресурс C$, то есть "\\distributor_server\C$\Program Files\Microsoft SQL Server\MSSQL\Repldata", к которому разрешён доступ членам локальной группы Administrators на сервере дистрибутора. Для этого, в свою очередь, требуется, чтобы учетная запись сервиса SQL Server Agent была добавлена в эту группу и получается, что она будет работать с очень высокими правами, создавая потенциальную уязвимость. Этого можно избежать, настроив запуск SQL Server Agent так, чтобы он работал в контексте безопасности непривилегированной учетной записи (для получения более подробной информации об этом изучите одну из предыдущих статей автора http://www.databasejournal.com/features/mssql/article.php/3349561), и изменив заданное по умолчанию место расположения и правила совместного доступа к папке моментальных снимков (создав специальный ресурс на сервере дистрибутора и указав его на закладке Snapshot Location). Убедитесь, что доступ к этой папке предоставлен только учетной записи, под которой запускается SQL Server Agent на дистрибуторе. Также обратите внимание, что каждый издатель может использовать разные папки снимков, задать которые также можно в диалоговом окне свойств издателя на дистрибуторе.
    Новшеством, появившемся в SQL Server 2000, является возможность определять альтернативное местоположение снимка. Это можно сделать в свойствах публикации на закладке Snapshot Location и в диалоговом окне Create and Manage Publications, доступном через меню Tools -> Replication. В окне Snapshot Location Вы можете определить основное (заданное по умолчанию) или альтернативное расположение моментальных снимков. Это может быть любой ресурс, доступный для Snapshot Agent и подписчиков, включая FTP каталог (информация о логине задаётся в этом же окне).
    Также, при использовании pull - подписки, папка для снимков должна быть доступна SQL Server Agent подписчиков. Запускающие эти сервисы учётные записи должны иметь право на чтение (на уровне NTFS) альтернативного ресурса моментальных снимков и основной папки, а так же права на SELECT в нескольких таблицах базы данных distribution (MSrepl_commands и MSrepl_transactions).
    В случае push - подписчиков репликации моментальных снимков, учетная запись SQL Server дистрибутора должна иметь достаточные права на подписчиках, в частности на CREATE и DROP в подписываемой базе данных, а так же на SELECT, INSERT, EXECUTE и DELETE для каждой статьи публикации.

Требования для работы Snapshot Agent одинаковы для всех типов репликации. Однако, при использовании репликации транзакций или репликации слиянием, Вы должны учитывать дополнительные аспекты, которые касаются работы дистрибутора и Log Reader агента для репликации транзакций или Merge - агента в случае репликации слиянием.

Log Reader Agent работает с дистрибутором. Его задача читать отмеченные для репликации транзакции в журнале издаваемой базы данных и копировать их в виде команд в базу данных distribution. Всё это происходит в контексте безопасности SQL Server Agent дистрибутора. Тиражированием изменений подписчикам занимается Distribution Agent, который, кроме необходимых ему для этого прав в базе distribution, также нуждается в правах на INSERT, UPDATE и DELETE в базах данных подписчиков, и должен иметь разрешение на чтение в папке моментальных снимков на дистрибуторе.

Merge Agent в репликации слиянием занимается синхронизацией данных между издателем и подписчиками. Он контролирует изменения с обеих сторон, разрешая возможные конфликты и отмечая все изменения данных в таблицах метаданных издателя. Для этого ему требуются прав на SELECT, DELETE, INSERT и UPDATE в базе данных издателя. Изменения, переданные агентом издателю, впоследствии будут применены другими подписчиками. Механизм изменений данных на подписчиках зависит от того, какой используется тип подписки, push или pull. В первом случае, Merge Agent запускается на дистрибуторе, подключается к подписчику и тиражирует изменения, для чего ему нужны права на INSERT, DELETE и UPDATE. Во втором случае, Merge Agent запускается на подписчиках, подключается к издателю, получает метаданные об изменениях и выполняет их на подписчике. Обратите внимание, что для pull - подписки существуют отдельные экземпляры Merge Agents на дистрибуторе и на подписчике. Вы можете использовать этот факт в своих интересах и запускать их под различными учетными записями, фактически регулируя уровень доступа, который подписчик имеет в базе данных distribution (и на сервере). Независимо от места запуска, Merge Agent нуждается в праве на чтение в папке снимков (по умолчанию это: "Program Files\Microsoft SQL Server\MSSQL\Repldata") на дистрибуторе.

При работе в составе Active Directory, Вы можете публиковать там экземпляры SQL Server, их базы данных и статьи для репликации как объекты домена. С одной стороны, это упрощает к ним доступ и облегчает их поиск для легитимных подписчиков; но с другой стороны, это потенциально выставляет их напоказ тем, кому об этих публикациях знать не положено.

Как Вы можете видеть, аспекты безопасности репликации баз данных SQL Server 2000 довольно сложны. К счастью, работа с ними значительно упрощена при использование мастеров, и предупреждений, которые выдаются ими в процессе конфигурирования, а также параметров по умолчанию, которые учитывают типовые требования безопасности.

[В начало]

SQL Server 2000: основы работы с представлениями

По материалам статьи Navneeth Diwaker Naik SQL Server 2000: View Basics
Перевод Виталия Степаненко

Представления - это не что иное, как сохраненные команды SQL, которые иногда называют "виртуальными таблицами". Учтите, что представления не могут хранить данные (кроме индексированных представлений); они только ссылаются данные, присутствующие в таблицах.

Давайте рассмотрим базовый синтаксис создания представления:

CREATE VIEW View_Name
AS
SELECT Statement
GO

Есть две важные опции, которые могут быть использованы при создании представления. Это SCHEMABINDING и ENCRYPTION. Мы рассмотрим каждую из них подробно, но сначала разберем пример создания обычного представления без опций.

USE Northwind
GO
CREATE VIEW vwSample
As
SELECT CustomerID, CompanyName, ContactName FROM CUSTOMERS
GO

Этот скрипт создает представление vwSample. Теперь вместо использования полной команды SELECT можно воспользоваться следующей командой:

SELECT * from vwSample

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

DROP VIEW vwSample

Создание представлений с опцией SCHEMABINDING

Создание представления с опцией SCHEMABINDING блокирует таблицы, на которые ссылается представление и запрещает любые изменения схемы этих таблиц.

Обратите внимание на два важных условия при создании представления с опцией SCHEMABINDING:

- объекты должны указываться вместе с именами их владельцев (имя из двух частей);

- использование SELECT * не допускается.

Ниже приведен пример представления с опцией SCHEMABINDING:

CREATE VIEW vwSample
With SCHEMABINDING
As
SELECT
CustomerID,
CompanyName,
ContactName
FROM DBO.CUSTOMERS -- Имя из двух частей (владелец.объект)
GO

Эта команда создает представление vwSample. После создания представления попробуйте изменить таблицу CUSTOMERS, это не удастся. Это результат опции SCHEMABINDING. Т.к. vwSample ссылается на таблицу CUSTOMERS, то вы не можете выполнять команду ALTER на таблице CUSTOMERS.

Не забудьте удалить представление.

DROP VIEW vwSample

Создание представлений с опцией ENCRYPTION

Эта опция зашифровывает определение представления. Пользователи не смогут просмотреть определение представления после его создания.

USE NORTHWIND
GO
CREATE VIEW vwSample
With ENCRYPTION
As
SELECT
CustomerID,
CompanyName,
ContactName
FROM DBO.CUSTOMERS
GO
SELECT *
FROM SYSCOMMENTS
WHERE ID = (SELECT ID FROM SYSOBJECTS WHERE XTYPE = 'V' AND NAME = 'vwSample')

Определение представления будет сохранено в зашифрованном формате в системной таблице syscomments.

Внимание: после шифрования определения расшифровать его уже нельзя. Поэтому будьте очень осторожны при использовании опции ENCRYPTION.

Не забудьте удалить представление.

DROP VIEW vwSample

Индексированные представления

SQL SERVER 2000 позволяет создавать индексы для представлений. Предыдущие версии SQL SERVER не позволят делать это. Но нужно отметить одну важную особенность - первый индекс представления должен обязательно быть уникальным и кластерным. SQL SERVER 2000 не позволит вам создать любой другой индекс, пока представление не будет иметь уникальный кластерный индекс.

Давайте рассмотрим пример индексированного представления:

CREATE VIEW vwSample
As
SELECT
CustomerID,
CompanyName,
ContactName
FROM DBO.CUSTOMERS
GO
CREATE UNIQUE CLUSTERED INDEX indClustered
ON NORTHWIND.DBO.VWSAMPLE (CUSTOMERID)
GO

Эта команда создает уникальный кластерный индекс для представления.

Не забудьте удалить представление.

DROP VIEW vwSample

Варианты использования представлений

Представления могут быть использованы для вставки/обновления и удаления данных из таблицы. Давайте подробно разберем, как это делать. Сначала рассмотрим, как вставить данные в таблицу, используя представление.

Следующий скрипт создаст таблицу TEST и представление vwSample.

USE NORTHWIND
GO
CREATE TABLE [Test]
(
TestID INT,
TestName VARCHAR (100)
)
GO
CREATE VIEW vwTest
As
SELECT
TestID, TestName
FROM Test
GO

Теперь вставим данные в таблицу Test, используя представление. Выполните следующую команду. Она вставит данные в таблицу Test.

INSERT INTO vwTest
VALUES (1, 'Test 1')
SELECT * from Test
TestID TestName
-------------------------------
1 Test 1

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

UPDATE vwTest
SET TestName = 'New Value'
WHERE TestID = 1
SELECT * from Test
TestID TestName
--------------------------------
1 New Value

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

Не забудьте удалить представление.

DROP VIEW vwTest

Триггер INSTEAD OF на представлении

SQL SERVER 2000 позволяет создавать триггеры на представлениях. Предыдущие версии SQL SERVER не позволяли делать это. Это является новой особенностью SQL SERVER 2000. Но помните, что вы можете создать только триггеры INSTEAD OF на представлениях.

CREATE VIEW vwSample
As
SELECT
CustomerID,
CompanyName,
ContactName
FROM DBO.CUSTOMERS
GO

Ограничения представлений

Существуют некоторые ограничения при использовании представлений. Вот они:

- нельзя использовать SELECT INTO в представлении;

- временные таблицы не могут использоваться в представлении;

- параметризованные представления не существуют, т.е. вы не можете передавать параметры в представления;

- выражения COMPUTE & COMPUTE BY не могут использоваться в представлении.

Представления и пользовательские функции

Представления и пользовательские функции используются почти для одной и той же цели. Главным отличием является то, что пользовательские функции могут получать параметры, а представления нет. Также результат пользовательской функции может быть напрямую использован в команде SELECT, что невозможно сделать с представлением.

Заключение

Представления - это не что иное, как сохраненные команды SQL. Пользователь может вставлять, удалять или обновлять данные, используя представления в SQL SERVER 2000. Индексы и триггеры также могут быть созданы для представлений, но с ограничением - первый индекс должен быть UNIQUE CLUSTERED INDEX, а триггер должен быть типа INSTEAD OF. Представления и пользовательские функции предназначены практически для одной и той же цели с той лишь разницей, что пользовательские функции могут иметь параметры, а представления нет.

Navneeth Diwaker Naik (navneeth_naik@satyam.com) является сотрудником Satyam Computers Services Limited, Hyderabad, Andhra Pradesh (Индия).

[В начало]

ССЫЛКИ НА СТАТЬИ

Статьи на русском языке

Публикация SQL Server в Active Directory
Чед Миллер
MSSQLServer: Заметив вкладку Active Directory в свойствах SQL Server в Enterprise Manager, многие удивляются: какое отношение Active Directory (AD) имеет к SQL Server, какие преимущества можно получить при добавлении сведений об SQL Server и базах...
О 64-разрядных версиях Windows
Поль Тюрро
Работа над 64-разрядными версиями Windows ведется в Microsoft с момента появления процессора Alpha от Digital Equipment. Однако в конце 2004 г. ожидается выпуск 64-разрядных вариантов Windows для рабочих станций и серверов, предназначенных для работы на различных аппаратных платформах Intel и AMD...
Создай свой кластер
Дуглас Спиндлер
С выходом Windows NT Server 3.51 у администраторов появилась возможность объединять серверы Windows в кластеры с помощью продуктов Microsoft и независимых поставщиков...
Разработка хранимых процедур на базе CLR
Вильям Ваун
MSSQLServer: CLR должен знать каждый!......

[В начало]

Англоязычные статьи

SQL Server: Routine to push existing records up or down
Greg Robidoux and Jeremy Kadlec
I need to ask help in writing a routine which will push existing records up or down. What I mean is if I have a table with following columns/data
MSSQL Server 2000 Reporting Services: Master Chart Reports: Pie Charts in Reporting Services
William Pearson
Reporting services enables us to present both summarized and detailed data in colorful, easy-to-read charts of various types. The Master Chart Reports subset of MSSQL Server 2000 Reporting Services series will demonstrate how to create chart reports of various types, and how to use the abundant features contained in Reporting Services that enable us to use them to make report data more meaningful and easier to understand. We can choose from a number of chart layouts and types within the Reporting Services chart data region options. (A data region is an area on a report that contains data from a data source that is repeated. The types of data regions are list, matrix, table, and chart.)
SQL Server 2000 Security - Part 10 - Auditing
Marcin Policht
So far, in our series, we have been focusing on tasks geared towards configuration changes, which increased the default security level of the SQL Server 2000 installations. However, no matter how much time and attention you dedicate to this process, it is likely that sooner or later you will have to face an attempt of unauthorized intentional or accidental data or object definition change, exploit of security vulnerability, or even a malicious modification by an unethical system administrator. You need to be prepared for such possibilities and ensure you can track their source and prevent them from happening in the future. This is the purpose of auditing, which is the topic of this article
Scanning the network for SQL Server
Muthusamy Anantha Kumar
In a large IT department, it can be difficult to locate where new SQL Server installations were made and how many of those SQL Servers were patched, etc. This article explains how to scan the entire network to find which boxes have SQL Server instances running and how to identify what version they are
Implement User-defined Functions in SQL Server 2005 with Managed Code
Thiru Thangarathinam
One of the excellent features of SQL Server 2005 is its integration with the .NET common language runtime (CLR), which extends SQL Server's capability in several important ways. The integration enables developers to create database objects such as stored procedures, user-defined functions, and triggers by using modern object-oriented languages such as VB.NET and C#. This article explains how to create user-defined functions using C#. It then tests the user-defined function using the SQL Server integration features of Visual Studio 2005. Finally, it creates a Windows Forms client application to test the user-defined function
Auditing with SQL Profiler
Brian Kelley
The first time I touched SQL Profiler was to find out what long running queries were hammering a particular database. That was the moment I fell in love with this tool. I've used it to find stored procedure recompiles, infinite program loops on the client-side, and other performance no-nos in my career as a DBA. However, I've also used SQL Profiler heavily as an audit tool, especially if I want to watch traffic on my SQL Server in real time. If I want to collect events for later analysis I'll tend to use the trace stored procedures but they can't stand up to the flickering of events on my console when I'm trying to troubleshoot a security issue. SQL Profiler is ideal for this task
The Daily Database Build
graz
Continuous integration is a popular concept in software development right now. One of the key components of this is making sure you always have a clean build of your program. This can also be applied to database development. This article shows how to build a cheap, simple series of scripts that will let to rebuild a development database at the click of a mouse
Get Ready for SQL Server 2005
Roger Jennings
Belated Beta 2 shows what's in store for data architects, project managers, and DBAs. SQL Server 2005—the database formerly known as Yukon—is in the throes of what promises to be a five-year-plus gestation. Projected beta release dates have come and gone since its first demonstration in 2001, and some features have been cut. Microsoft released Beta 2 this July for download by MSDN Enterprise, Universal, and Professional subscribers (see Additional Resources). Microsoft's Tom Rizzo, director of SQL Server product management, says Beta 2 is "close to feature-complete," with later betas to deliver enhancements to SQL Server Reporting Services and the management tools. The actual product is due to ship in 2005, as its new name promises, with the additional promise that it will be fast, bulletproof, and secure
Microsoft and Oracle: Better Together, Part 2
Patrick Meader
A recent blog entry—recent for me, anyway—recounted a visit some years ago from some Oracle reps whereat the people promoting the then-latest version of Oracle ignored completely the ostensible audience for they were talking to when visiting VSM's offices—namely, Visual Studio developers on Windows
Moving DTS Packages
Gregory A. Larsen
It is fairly easy to manually copy a single DTS package from one SQL Server machine to another. But what if you want to copy all the DTS packages on SERVERA to SERVERB because you are decommissioning SERVERA? If you have hundreds of DTS packages, copying the packages manually would become a very time-consuming task. This article will discuss how you can use SQL-DMO and the DTS object model to quickly copy many DTS packages
A Look Into The Future Of Microsoft And Oracle OLAP
Mark Rittman
Regular readers of this column will probably know that I work as a developer on the Oracle platform, putting together business intelligence and data warehousing applications using Oracle’s database and application server platforms. In the past, I’ve covered Oracle products such as Warehouse Builder and Oracle 10g. This month, during which I look forward to what Oracle has planned for the OLAP market, I’m going to broaden the remit and look at what Microsoft has in store as well. It’s an interesting story, as these two giants of the database industry have quite distinct and different views on how the OLAP industry will unfold, and each view has its own appeal
View from the Top — Part 3
Chris Foot
In part three of this article, Chris Foot continues in his interview with three DBA “true technicians” on the current state of database and server technologies and what we can look forward to in the future. This month
Beginning SQL Server - Logins and Users. Part 3
Steve Jones
This is the third part in the Beginners series and will start the look at security. This is a basic introduction to people in how they connect to SQL Server and what issues they might have. It's a lot of common items that DBAs and developers take for granted, but which administrators might not think of or understand right off. In case you missed them
Troubleshooting and Debugging SQL Web Services Configurations
Humberto Acevedo
A Q&A look at the new Web Services configurations in SQL Server 2005
Data restriction using CHECK constraints
Barrie Sosinsky
You can use one or more CHECK constraints to limit the data that can be entered into your tables or column. A CHECK evaluates a Boolean equation and determines if the data either matches or doesn't match the condition. While a CHECK constraint doesn't provide the programming logic and functionality of either triggers or stored procedures, it's easy to write and it runs quickly
SQL: Integer or character primary key
Rudy Limeback
I have a table with a primary key (PK), which was naturally defined as an integer number from my business model. Do I have to keep this PK as an integer or could I use a char/varchar data type? Considering that the values for PK will not be greater than 500000, using varchar(6) could save some space. Does it affect indexing or querying?
SQL Server Connectivity
Microsoft Team
SQL Server 2000 supports several methods of communication between client applications and the server. When the application is on the same computer as an instance of SQL Server 2000, Windows Interprocess Communication (IPC) components, such as Local Named Pipes or Shared Memory, are used. When the application is on a separate client, a network IPC, such as TCP/IP or Named Pipes, is used to communicate with SQL Server
Exotic use of User Defined Function
Leo Peysakhovich
This title was given by one of my colleagues for the specific way I used a user defined function to solve a problem
Analyzing Data Storage - Ten SHOWCONTIG Queries
Joseph Sack
DBCC SHOWCONTIG allows you to report on fragmentation information for the data and indexes of a specified table
IncidentResponse - The Framework
Steve Jones
DisasterRecovery is something that's on my mind lately. With hurricane Charlie rolling through Florida recently (it's August 2004 as I write this), and my partner Andy without power for nearly a week in central Florida, we've had some discussions about how to prepare for a disaster and the value of doing so. I'm not big on getting too detailed in a recovery plan, but I do agree that there are some good reasons for setting up a framework under which to work. This article looks at some ideas for such a framework based on my experiences

[В начало]

ФОРУМ SQL.RU

Самые популярные темы недели

Кто на чем пишет клиентов под SQL Server?
Индексы и Where
Рыба есть! О контроле пересоздания объектов
временные таблицы и те кто ими пользуются...
Линк к гадскому ORACLE... Выполнение "его" процедур?!?
не могу выполнить DTS-пакет
Как заставить BACKUP сохраняться на сетевой диск?
говорящий сиквел
помогите написать запрос (работа с датами)
Заметное падение производительности
DRI &Cascade operations VS Triggers: что лучше?
Проблема с запросом больше 128 символов
Несоответствие клиентской программы и Query Analizer !
первый раз вижи MSSQL,а надо с ним работать,ХЕЛП
Как выбрать из двух минимальных значений одно?
расположение файлов на диске
заполнение экстентов. объясните, пожалуйста.
DTS и VBScript
где ошибка
Как проверить формат данных...

[В начало]

Вопросы остались без ответа

Функция, которая выбирает товары
Прикрутить QA к SQL Express
MS FullText Search - решение проблемы со стоп-словами
SQLServerAgent выгружается W2003 сервером?
Logging for stored procedures in MS SQL Server.
Linked Server к Oracle отказался работать.
План переноса сервера с репликацией.
DTS custom task
Проблема при использовании утилиты osql
MS SQL Server и Spatialware проблемы!!!
msde

[В начало]

#213<<  #214


Вопросы, предложения, коментарии, замечания, критику и т.п. присылайте Виталию Степаненко на адрес: stvitaly@sql.ru

sql.ru Описание рассылки

СЕМИНАРЫ
КОНФЕРЕНЦИИ

МИНИФОРМА
ПОДПИСКИ



ПУБЛИКАЦИИ
АРХИВ


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.winsoft.sqlhelpyouself
Отписаться

В избранное