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

MS SQL Server

  Все выпуски  

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


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


#137<<  #138

СОДЕРЖАНИЕ

1.СОВЕТЫ
1.1.Безопасность Microsoft SQL Server 2000 (ПРОДОЛЖЕНИЕ)
2.ССЫЛКИ НА СТАТЬИ
2.1.Отечественные статьи
2.2.Новые технические статьи Microsoft
2.3.Англоязычные статьи
3.ФОРУМ SQL.RU
3.1.Самые популярные темы недели
3.2.Вопросы остались без ответа
4.ПОЛЕЗНОСТИ
4.1.Материалы семинара: Применение CASE средств в процессе разработки и сопровождения приложений и баз данных
4.2.Подпишитесь на новую рассылку: Вопросы и ответы по Microsoft SQL Server

СОВЕТЫ

Безопасность Microsoft SQL Server 2000 (ПРОДОЛЖЕНИЕ)

По материалам статьи Richard Waymire и Ben Thomas: Microsoft SQL Server 2000 Security

1.         Введение
2.         Новшества безопасности SQL Server 2000
2.1.      Безопасная инсталляция
2.2.      Установка Microsoft SQL Server 2000 Desktop Engine
2.3.      Уровень безопасности C2
2.4.      Kerberos и делегирование в среде Windows 2000
2.5.      Аудит безопасности
2.5.1.   SQL trace
2.5.2.   SQL Profiler
2.5.3.   Режим аудита C2
2.6.      Исключение SQLAgentCmdExec Proxy Account
2.7.      Расширение набора серверных ролей
2.7.1.   Bulkadmin
2.7.2.   Securityadmin
2.7.3.   Serveradmin
2.8.      Шифрация
2.8.1.   Шифрация трафика с использованием SSL/TLS
2.8.2.   Login Packet Encryption
2.8.3.   Client-Requested Encryption
2.8.4.   Server-Requested Encryption
2.8.5.   Поддержка Encrypted File System на Windows 2000
2.8.6.   Server-Based Encryption Enhanced
2.8.7.   DTS Package Encryption
2.9.      Пароли
2.9.1.   Резервирование и Backup Media Sets
2.9.2.   SQL Server Enterprise Manager
2.9.3.   Изменение учётной записи сервиса с использованием SQL Server Enterprise Manager
2.9.4.   В системных таблицах убран столбец SUID
2.10.    Модель безопасности SQL Server 2000
2.11.    Режимы аутентификации
2.11.1. Windows Authentication Mode
2.11.2. Смешанный режим
2.12.    Поддержка Security Identification Numbers
2.13.    Роли
2.13.1. Роль public
2.13.2. Предопределенные Роли
2.13.3. Фиксированные серверные роли
2.13.4. Фиксированные роли базы данных
2.13.5. Определяемые пользователем роли
2.13.6. Роли приложений
2.14.    Обеспечение доступа к серверу
2.14.1. Уровень Windows
2.14.2. Уровень SQL Server

2.15. Обеспечение доступа к базе данных

Успешная регистрация на SQL Server 2000 не даёт пользователю автоматически доступ ко всем базам данных. Что бы пользователь мог работать с базой данных, ему нужно предоставить на это соответствующие разрешения.
В этом разделе, мы не будем делать различий между не доверенными пользователями, пользователями Windows и группами Windows. Когда ссылка указывает на пользователя или группу Windows, они могут быть пользователями или глобальными группами в доверенных доменах или располагаться в доменах того же дерева или леса.
В каждой базе данных, создается пользователь и привязывается к логину SQL Server, пользователю или группе Windows. SQL Server Enterprise Manager, который основан на Microsoft Management Console (MMC), является основным инструментом управления SQL Server 2000, и не позволяет создавать пользователей, которые не имеют разрешений на вход в систему. MMC создает список всех учетных записей, которым предоставлено разрешение входа на сервер, и может работать только с ними. Тот же самое происходит и при использовании SQL-DMO.
Средствами Transact-SQL можно предоставлять права доступа к базе данных любым логинам SQL Server, пользователям или группам Windows, если они существуют в таблице sysxlogins базы данных master.
Обратите внимание, хотя это и не является техническим требованием, если Вы используете доверительное подключение, настоятельно рекомендуется, чтобы в каждой базе данных Вы создавали пользователей с теми же именами, как и у соответствующих логинов.
Ниже представлены примеры инструкций Transact-SQL, предоставляющих разрешения на доступ к базе данных:


/* Grant access to Bob. */
exec sp_grantdbaccess 'REDMOND\Bob'

/* Grant access to Wendy, referring to her by first name within this database. */
exec sp_grantdbaccess 'REDMOND\WendyH', 'Wendy'

Требуется внести только одно изменение в этот скрипт, чтобы дать права для не доверительного подключения клиента. Вместо имени пользователя и домена, используйте имя пользователя, которое использует SQL Server 2000 для подтверждения его подлинности.
При использовании SQL-DMO, аналогичные операции можно сделать следующим образом:


' Declare variables.
Dim oServer As SQLDMO.SQLServer
Dim oUser As SQLDMO.User

' Create a server object and connect.
Set oServer = CreateObject("SQLDMO.SQLServer")
oServer.Connect ("ServerNAME")

' Create the User object.
Set oUser = CreateObject("SQLDMO.User")

' Set the appropriate properties.
oUser.Name = "Bob"
oUser.Login = "REDMOND\Bob"

' Add the User object to the servers Users collection.
oServer.Databases("pubs").Users.Add oUser

[Содержание]

2.15.1. Обеспечение доступа к объектам базы данных

Разрешения можно предоставлять ролям и пользователям и они могут быть назначены для предоставления права пользователям выполнять инструкции и для обеспечения возможности обращения к объектам базы данных. Разрешения для операторов ограничивают возможность исполнения инструкций: CREATE DATABASE, CREATE TABLE или CREATE FUNCTION. Разрешения на объекты ограничивают доступ к таблицам, представлениям, определяемым пользователем функциям или хранимым процедурам. Они зависят от типа объекта, например, для таблиц могут быть установлены разрешения на SELECT, INSERT, UPDATE, DELETE и REFERENCES, в то время как для хранимых процедур устанавливается разрешения EXECUTE.

[Содержание]

2.15.2. Определяемые пользователем роли базы данных

В идеале, в ролях нет необходимости. Это возможно в такой среде, где все пользователи подключаются посредством Windows Authentication Mode к SQL Server 2000, работающему под управлением Windows NT 4.0 или Windows 2000. Администратор базы данных может попросить администратора Windows разместить всех пользователей с определёнными требованием доступа к данным (роль) в одну группу Windows, и тогда он предоставит необходимые разрешения непосредственно для этой группы Windows.
Однако, в большинстве реализаций дело обстоит не так, создание групп Windows не всегда возможно. Например, при установке SQL Server 2000 на операционную систему Windows 98, группы Windows создать технически не возможно. В этом случае могут использоваться пользовательские роли, группирующие их в соответствии с требованиями на разрешения. Любой пользователь или группа Windows могут быть назначены роли, а уже ей могут быть назначены разрешения на объекты базы данных, подобно тому, как назначаются разрешения для пользователей базы.
Обратите внимание, что определяемые пользователем роли могут быть созданы только в базе данных. Фиксированные серверные роли и фиксированные роли базы данных предопределены и не могут быть изменены. Роли могут быть созданы средствами Transact-SQL:


/* Add role for Telephone Operators. */
exec sp_addrole "TelephoneOperators"

Следующий пример показывает, как роли могут быть созданы в коде Visual Basic:


' Declare variables.
Dim oServer As SQLDMO.SQLServer
Dim oDbRole As SQLDMO.DatabaseRole

' Create a server object and connect.
Set oServer = CreateObject("SQLDMO.SQLServer")
oServer.Connect ("ServerNAME")

' Create the Database Role object.
Set oDbRole = CreateObject("SQLDMO.DatabaseRole")

' Set the appropriate properties.
oDbRole.Name = "TelephoneOperators"

' Add the Role object to the servers Role collection.
oServer.Databases("pubs").DatabaseRoles.Add oDbRole

После того, как создана определяемая пользователем роль базы данных, в неё могут быть добавлены пользователи, группы или другие роли. Роли могут быть вложенными, хотя рекурсия не допускается.
Следующий пример на Transact-SQL добавляет пользователя Windows, группу Windows и роль базы данных в недавно созданную роль:


/* Add a Windows user to the TelephoneOperators role. */
exec sp_addrolemember "TelephoneOperators", "REDMOND\Bob"

/* Add a Windows group to the TelephoneOperators role. */
exec sp_addrolemember "TelephoneOperators", "REDMOND\Sales"

/* Add HelpDeskOperators role to TelephoneOperators role. */
exec sp_addrolemember "TelephoneOperators", "HelpDeskOperators"

И снова с SQL-DMO:


' Declare variables.
Dim oServer As SQLDMO.SQLServer

' Create a server object and connect.
Set oServer = CreateObject("SQLDMO.SQLServer")
oServer.Connect ("MSNZBENTHOM")

' Use with statement for code legibility.
With oServer.Databases("pubs").DatabaseRoles("TelephoneOperators")

' Add the Windows user to the TelehoneOperators role collection.
 .AddMember ("REDMOND\Bob")

' Add the Windows group to the TelehoneOperator's role collection
 .AddMember ("REDMOND \Sales")

' Add the HelpDeskOperators role to TelehoneOperators role collection.
 .AddMember ("HelpDeskOperators")

End With

[Содержание]

2.15.3. Система разрешений

Система разрешения SQL Server 2000 основана на такой же модели, которая формирует разрешения в Windows. Если пользователь является членом ролей sales, marketing и research (теперь возможны множественные членства в группах), пользователь получает сумму соответствующих разрешений от каждой роли. Например, если sales имеют на таблицы разрешение SELECT, marketing имеет разрешение INSERT, а research имеет разрешение UPDATE; пользователь получит сумму разрешений: SELECT, INSERT и UPDATE. Однако, как и с Windows, если для одной из ролей, членом которой пользователь является, было отклонено какое-нибудь разрешение на объекты (например SELECT), пользователь будет неспособен осуществлять такие операции над объектами. Наиболее приоритетным ограничительным разрешением является Deny.

[Содержание]

2.15.4. Предоставление и отрицание разрешений для пользователей и ролей

Разрешения в базе данных всегда предоставляются пользователям базы, ролям и пользователям или группам Windows, но они никогда не предоставляются логинам SQL Server 2000. Для предоставления разрешений пользователям или ролям базы данных используются методы: Grant - предоставление разрешений, Deny - отрицающие разрешение и Revoke - отменяющее разрешение.
Deny позволяет администратору запрещать пользователю или роли работать с объектами или инструкциями. Как в случае разграничения прав Windows, Deny имеет приоритет по отношению ко всем другим разрешениям.
Например, если бы некоторые пользователи базы данных позволяли себе фривольно изменять данные, было бы не справедливо удалить эти разрешения для всех пользователей, поскольку большинство пользователей использует данные вполне ответственно. Можно создать новую роль с именем, например, trouble_makers, а затем установить для неё Deny для операций INSERT, UPDATE и DELETE на все блокируемые таблицы. Если пользователи плохо себя ведут, они помещаются в роль trouble_makers, но это не повлияет на работу другого персонала, групп или на разрешения ролей. Отменяющие разрешение Revoke, по своей сути, отличается от отрицающего разрешения Deny. Revoke удаляет предыдущие предоставление разрешений Grant или Deny, а разрешение Deny запрещает доступ даже тогда, когда было предоставлено разрешение на доступ.
В представленных ниже примерах, каждый из этих методов будет продемонстрирован на Visual Basic и на Transact-SQL. Инструкция Transact-SQL предоставляет Бобу и Джейн разрешение на SELECT в таблице authors, и предоставляет Джейн разрешение на INSERT в таблицу titles:


/* Grant permissions to SELECT. */
GRANT SELECT
ON authors
TO Bob, [REDMOND\Jane]
GO

/* Grant permissions to INSERT. */
GRANT INSERT
ON titles
TO [REDMOND\Jane]
GO

Предыдущий пример показывает, как работает инструкция Grant при предоставлении разрешения пользователю базы данных (Боб) и при предоставлении разрешения пользователю Windows (Джейн).
Вот - тот же самый пример на Visual Basic:


' Declare variables.
Dim oServer As SQLDMO.SQLServer

' Create a server object and connect.
Set oServer = CreateObject("SQLDMO.SQLServer")
oServer.Connect ("ServerNAME")

' Grant Jane and Bob permissions to select from the authors table.
oServer.Databases("pubs").Tables("authors").Grant SQLDMOPriv_Select, "Bob"
oServer.Databases("pubs").Tables("authors").Grant SQLDMOPriv_Select, _
"[REDMOND\Jane]
' Grant Jane permissions to select from the authors table.
oServer.Databases("pubs").Tables("authors").Grant SQLDMOPriv_Select, _
"[REDMOND\Jane]"

В предыдущих примерах, есть небольшое различие между предоставлением доступа пользователю с полностью квалифицированным именем домена, и предоставлением доступа пользователю, который уже имеет разрешение на непосредственный доступ к базе данных. Следующие примеры используют только существующих в базе данных пользователей. Представленный ниже пример на Transact-SQL показывает, как пользователю может быть отклонено разрешение SELECT:


/* Deny permissions to SELECT. */
DENY SELECT
ON authors
TO Bob
GO

И снова Visual Basic:


' Declare variables.
Dim oServer As SQLDMO.SQLServer

' Create a server object and connect.
Set oServer = CreateObject("SQLDMO.SQLServer")
oServer.Connect ("ServerNAME")

' Deny Bob permissions to select from authors table.
oServer.Databases("pubs").Tables("authors").Deny SQLDMOPriv_Select, "Bob"

Пример на Transact-SQL, который показывает отмену разрешения для пользователя:


/* Revoke permissions to SELECT. */
REVOKE SELECT
ON authors
FROM Bob
GO

Here is the Visual Basic code:
' Declare variables.
Dim oServer As SQLDMO.SQLServer

' Create a server object and connect.
Set oServer = CreateObject("SQLDMO.SQLServer")
oServer.Connect ("ServerNAME")

' Revoke Bob permissions to select from the authors table.
oServer.Databases("pubs").Tables("authors").Revoke SQLDMOPriv_Select, "Bob"

[Содержание]

2.15.5. Цепочки владения

Правильное понимание функционирования цепочек владения является критически важным для реализации безопасности SQL Server 2000. Концепция цепочек владения вступает в силу, когда проверены разрешения на объекты. Например, когда пользователь обращается к представлению, разрешение на представление должно быть проверено, но возникает вопрос: должны ли проверятся разрешения на исходные для представления таблицы?
SQL Server 2000 всегда проверяет разрешения на объекты, когда цепочка владения разорвана. Разорванная цепочка владения - это когда объект не имеет того же самого владельца как у его образующих объектов. Например, если Боб создает таблицу, а Мэри создаёт представление, основанное на этой таблице, получается разорванная цепочка владения.
С точки зрения безопасности, наличие разорванных цепочек владения определяет, что разрешения должны быть проверены до уровня первоначального объекта, к которому последует обращение.
Концепцию цепочек владения лучшие объяснять на примере. Принимаем, что владелец таблицы Боб. Он даёт к ней доступ Мэри, предоставляя ей разрешение на SELECT для этой таблицы. Мэри создает представление на таблице Боба, которое удовлетворяет её потребностям. Их коллега Сью видит, что Мэри использует своё представление, и у неё возникает желание также им пользоваться. Мэри соглашается дать Сью доступу к представлению. Однако, в намерения Боба не входило то, что Сью сможет видеть данные в его таблице. К счастью, есть разорванная цепочка владения, так как владелец таблицы Боб, а владелец представления Мэри. Владелец представления не является владельцем объекта - таблицы, которая лежит в основе представления. В таком случае, когда Сью, попытается использовать представление, SQL Server проверит разрешения на представление, что бы убедиться в том, что Сью, был предоставлен к нему доступ. После этого, также будут проверены разрешения на таблицу Боба. Если Сью не был предоставлен доступ к таблице, она не сможет использовать представление. Это произойдёт из-за того, что цепочка владения разорвана. Таким образом, концепция разорванных цепочек владения позволяет принимать меры против получения несанкционированного доступа к данным. Наоборот, если Боб решит создать представление, и запретить Сью доступу к его таблице, но предоставит доступ к представлению, тогда Сью сможет обращаться к представлению. В этом случае, разрешения будут проверятся только когда Сью будет осуществлять доступу к представлению. Тут не будет никакой разорванные цепочки владения, так что разрешения для основной таблицы не будут проверятся. Поскольку Боб создал оба объекта, он должен понимать, что предоставление доступа к представлению потребует неявного доступа к основным объектам.
В качестве ещё одного примера мы можем рассмотреть то, как SQL Server 2000 использует концепцию цепочек владения при вводе паролей пользователей. Пользователям нельзя непосредственно обновлять системные таблицы, особенно в базе данных master. При использовании SQL Server 2000 смешанного режима аутентификации, комбинация имени и пароля сохраняется в системной таблице sysxlogins. Пользователям нужно дать легальную возможность изменить их пароли. SQL Server 2000 делает это вызывая хранимую процедуру, которую может исполнить любой пользователь, чтобы изменить свой пароль. Доступ к таблице sysxlogins отключён, но разрешено выполнять sp_password, эта хранимая процедура доступна всем пользователям. Поскольку хранимая процедура sp_password и системная таблица sysxlogins имеют одного владельца, не получается разрыва цепочки владения, и разрешения проверяются только на хранимую процедуру.
Цепочки владения позволяют SQL Server 2000 поддерживать такую схему безопасности, при которой владелец данных может контролировать, кто будет с ними работать. В то же время, повышается эффективность, потому что не требуется проверять разрешения, если цепочка владения не разорвана.

ПРОДОЛЖЕНИЕ СЛЕДУЕТ

[Содержание]

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

Отечественные статьи

Процесс разработки программного обеспечения ICONIX
Существуют различные процессы разработки программного обеспечения. Здесь уже рассматривался RUP и пока не рассматривался процесс Экстремального программирования (eХtreme Рrogramming) как альтернатива Rational Unified Process. Где-то посередине этих полюсов и располагается процесс ICONIX, хотя, как считают разработчики, он все-таки несколько ближе к RUP....
Компонент Query
Если запрос SQL сводится к просмотру таблицы (запрос Select), то результат этого запроса (а не сама исходная таблица) помещается во временном файле на компьютере пользователя. Это таблица только для чтения и не допускает каких-либо изменений. Если же запрос связан с какими-либо изменениями содержания таблицы, то никаких временных таблиц не создается. BDE передает запрос на сервер, там он обрабатывается и в приложение возвращается информация о том, успешно ли завершена соответствующая операция...
Технологии BI и Data Warehousing: важные уроки последнего десятилетия и новые направления развития
Опыт первых проектов по внедрению технологии Business Intelligence (BI) и Хранилищ данных (DW) показывает, что работает в решениях BI. Важные уроки, которые преподнесли десять лет развития программных продуктов этого класса, и новые тенденции в области BI позволяют выявить принципы, придерживаясь которых, можно добиться более высокой окупаемости капиталовложений в сферу BI...

[Содержание]

Новые технические статьи Microsoft

Support WebCast: Microsoft SQL Server 7.0 and SQL Server 2000 Indexes
Support WebCast: Microsoft SQL Server 2000: Troubleshooting Connectivity
Support WebCast: Microsoft SQL Server 2000: Reading Execution Plans in SQL Server 2000
Support WebCast: Microsoft SQL Server 2000: An Introduction to SQL Server 2000 (64-bit) and Analysis Services (64-bit)
Support WebCast: Microsoft SQL Server 2000 Desktop Engine (MSDE) Installation, Deployment, and Patching
SQL Server Support Center
SQL 2000 Cluster Does Not Install on Windows Server 2003-Based Computers Where Terminal Services Is Installed in Application Mode
PRB: You Receive Error Message: "The log file for database 'Database Name' is full" While Restoring a SQL Server 7.0 Database Backup on SQL Server 2000
PRB: You Cannot Successfully Install a Named Instance of SQL Server 2000 Virtual Server on a Windows Server 2003-Based Computer
PRB: Virtual SQL Server 2000 Installation Fails on Datacenter Cluster with More Than Four Nodes
PRB: SQL Server Service Did Not Start Due to a Logon Failure
PRB: Error Message "HTTP Error 404 - File or directory not found" Occurs When You Access SQL Server 2000 with HTTP
INF: Permissions That You Must Have to Administer an OLAP Server
INF: How to Consolidate Physical Files and Rename the Logical File Name of a Database in SQL Server 2000
INF: How to Change Service Accounts on a SQL Virtual Server
INF: Considerations for Autogrow and Autoshrink Configuration
HOWTO: Upgrade the Master and the Target Servers (MSX/TSX) to SQL Server 2000 Service Pack 3
HOW TO: Configure Memory for More Than 2 GB in SQL Server
HOW TO: Change the SQL Server Service Account Without Using SQL Enterprise Manager in SQL Server 2000
FIX: SQL Profiler Stops Responding When Saving Output to Hard Disk That Is Out of Space
FIX: SQL Profiler Generates Error when Reading Trace Files that Exceed 1023 SPIDs
FIX: Server Name is not Being Populated on the Client Side (UI or File) in SQL Profiler
FIX: ROLLBACK of Transaction May Abort Concurrently Active Transactions
FIX: Incorrect Behavior in SQL Profiler Event Generation
FIX: DTS Designer May Generate an Access Violation After You Install SQL Server 2000 SP3
FIX: A Text Parameter May Return an Error If the SQL Server and the Client Code Pages Are Different
FIX: A Parallel Query with a COUNT Aggregate Function May Return Unexpected Results
BUG: User Cannot Create or Process an OLAP Database Even if the User is a Member of the OLAP Administrators Group

[Содержание]

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

Cluster That Index!
Christoffer Hedgate
One topic that is sometimes discussed in SQL Server communities is whether or not you should always have clustered indexes on your tables. Andy Warren discussed this briefly in one of his articles in the Worst Practices-series (Not Using Primary Keys and Clustered Indexes), here I will give my view on this matter. I will show you why I think you should always have clustered indexes on your tables, and hopefully you might learn something new about clustered indexes as well.
Managing Jobs Using TSQL
Randy Dyess
Having he honor of working for quite a few companies that did not have the resources to buy any of the nice SQL Server toys that exist out there or were willing to put an email client on the servers, I have found myself spending a good deal of time each morning checking the status of the numerous jobs running on my servers. Not a hard thing to accomplish, but very time consuming when you are talking about dozens of servers with hundreds of jobs. Maybe it was just me, but no matter how much I pleaded at some of these companies, they would go through the red-tape to get an email client put on the SQL Servers so I could use the job notification ability to send me a nice email each morning if a particular job failed. Being the poor companies DBA, I had to come up with something else.
Worst Practices - Blank Passwords
Steve Jones
Passwords are a tough topic. They are often abused, shared, written down, or made amazingly simple by way too many people. Even those who make an attempt to create difficult passwords, often find themselves unable to work with passwords that are too complex and not remembered, causing them to soon change back to easily remembered passwords
Identifying performance issues using SQL Server Profiler
Narayana Vyas Kondreddi
How to identify SQL Server performance issues, by analyzing Profiler output? It is always better to be proactive than reactive, when it comes to identifying and eliminating SQL Server performance issues. In this article, I am going to explain the method I follow, to identify performance issues in my database applications, before those applications go into production environment.
10 Steps to Securing your SQL Server
Brian Knight
Securing your SQL Server can be an arduous task, but very rewarding. Nothing makes me personally prouder than running a penetration test on a server that we just secured and not seeing any hot spots. This article will focus on the ways to easily secure your SQL Server. Although this takes care of some of the big issues, securing your SQL Server is an ongoing battle of constantly auditing and adjusting your plan. So without further ado, here's the laundry list of items to take care of on your SQL Server
Standards Are a Good Thing
Andy Warren
The company I work has been running SQL forever it seems, about three years ago we upgraded to v7 and later to v2K. Over that time we've gone from one db server to three, and upgraded all of those a couple times in some way or the other. Recently we finally got we needed to cluster everything, which called for a little rearranging. Going into the move, we had this
Auditing Your SQL Server - Part 3
Steve Jones
Auditing anything generates a tremendous amount of data. In the past, line printers were used in many applications, merely printing a new line on a piece of paper each time an event occurred, someone entered a door, a phone call was completed, etc. If you've ever used a system like this you have a great appreciation for the amount of paper that is consumed
Introducing Microsoft SQL Server "Yukon"
"Yukon" is the code name for the next release of Microsoft SQL Server, currently in development. SQL Server "Yukon" will provide organizations with next-generation capabilities across database development and management, availability, scalability, security, and business intelligence while enabling them to control costs. This article provides an overview of major feature enhancements in three key areas: enterprise data management, developer productivity, and business intelligence.

[Содержание]

ФОРУМ SQL.RU

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

О Data Controls в Delphi
Получение прогресса выполнения хранимой процедуры
Jet 4.0 &&& Транзакции
Семинар в Питере.
Про написание инсталяшек для баз данных...?
Медленно работает сервер
Линк к гадскому ORACLE... Выполнение "его" процедур?!?
Вопрос о стиле программирования
С оптимиз. разобрались, но запрос НЕ РАБОТАЕТ!!!
Можно ли использовать параметризованный IN в процедурах?
MS SQL в SBS
DISTINCT - как???
как мне указать, чтобы в результате запроса было одно поле - хитрый счетчик.
Нарастающие итоги в последний раз
Как объявлять транзакции в хранимой процедуре?
Создание новой БД. Пути к файлам.
Select
Чем заменить динамический запрос, если нет прав на таблицы?
.NET or not .NET [new]
ASC or DESC
Subquery returned more than 1 value.
Эх, заменить бы Query Analyzer..... (мечты)
Select, count
Один SELECT - разные результаты под SQL7 и SQL2000...
SQL + 1C торговля...
как написать запрос для постраничной выборки данных?
Как проставить уникальный ключ?
округление в sql запросе
Из запроса в таблицу?
работа с sql'ем через браузер
Помогите разобраться с тригером
СЕМИНАР: Применение CASE ср-в при разработке баз данных
Передача Null через параметр
Не устанавливается коннект с сервером
Linked server, dbf и сетевой путь
Подскажите, пожалуйста, как это все оптимизировать
Как заменить в тексте всех функций и представлений строковую конструкцию ???
Как прибить потерявшуюся транзакцию?
Почему не обновляется подчинённая таблица ?
о больших таблицах
INNER JOIN vs CROSS JOIN
Please! HELP!!!
вопрос новичка
Bug с 1С.
Обновление информации у клиента при изменении данных на сервере
Как запретить переименование таблицы?
Free ERP
Сравнение двух записей...
Как вставить Column не последним а в нужное место?
Как сделать GetObject? (не sp_OACreate)
Запрос к Linked Server'у.
Откат изменений в Delphi
Как правильно написать
SQL2000 кушает память
запросы
A = NULL если B=0, некрасиво получается
KILL после накатки SP3 не работает
count(1), exists(select 1 from Table)
Проект! Access97->MSSQL
Помогите создать запрос
Что случится с подпиской, если....
Список колонок запроса
BACKUP DATABASE и EXPIREDATE
Standart VS Enterprise
Standart VS Enterprise-2
@@SPID - как работать с ним?

[Содержание]

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

SqlRunXX.MSI
Опять про LINKED - сервер
SQL Server Books Online ...
Ребята, помогите найти электронный вариант книги по Access
Как DBCC LOG просмотреть журнал транзакций
Log Explorer 3.2!
JDBC:ODBC connect к MS SQL
SQLMoreResults при вызове ХП из ODBC
XML для публикаций
XML для публикаций
TSQL Можно ли в ХП реализовать SELECT * FROM @TableName
SQL Server 2000 64-bit RTM
Удаление системных таблиц
Интернет-биллинг на 1С + MSSQL Server 2000
Как же прикрутить snapshot

[Содержание]

ПОЛЕЗНОСТИ

Материалы семинара: Применение CASE средств в процессе разработки и сопровождения приложений и баз данных

001. Использование CASE средств при проектировании и сопровождении баз данных. ZIP, 400 Кб. Геннадий Кобзарев, "ИНКОМ-недвижимость"
002. Практика использования Erwin для создания и ведения баз данных при разработке корпоративных информационных систем. ZIP, 170 Кб. Борис Финкельберг, Группа компаний ТАЛГАР
003. Методика проведения бизнес-анализа в проектах автоматизации. ZIP, 100 Кб. Дмитрий Иванов, "ИНКОМ-недвижимость"
004. Sybase PowerDesigner 9.5 - интегрированная среда для моделирования информационных систем. ZIP, 700 Кб. Роман Кабанов. Sybase.

[Содержание]

Подпишитесь на новую рассылку: Вопросы и ответы по Microsoft SQL Server

Автор рассылки: Сергей Кошкин
Адрес сайта Рассылки - http://sql.boom.ru/
Цель проекта: Совершенствование знаний MS SQL Server.
Можно постепенно улучшать свои знания, участвуя в форумах и подписываясь на группы новостей. Но это очень долгий путь, который съедает массу времени и требует постоянного отслеживания сообщений. С помощью этой рассылки можно облегчить себе жизнь, читая ответы на наиболее интересные вопросы.
В основной своей массе вопросы и ответы посвящены аспектам программирования на Transact - SQL. Далее по значимости следует настройка MS SQL Server. И в последнюю очередь - администрирование.
Рассылка предназначена как для начинающих, так и для опытных и продвинутых программистов и администраторов.
Насколько хорошо бы Вы ни знали MS SQL Server, рано или поздно возникнет задача, решить которую довольно сложно.
Эта рассылка поможет Вам подготовиться к решению такого рода задач.

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

Вопросы и ответы по MS SQL Server

Архив выпусков:

1. Для чего вообще нужен оператор JOIN? (05.03.2003)
2. Зачем нужны хранимые процедуры, и как ими пользоваться? (07.03.2003)
3. Зачем нужны триггеры, и как ими пользоваться? (13.03.2003)
4. Что такое подзапросы (вложенные запросы, подвыборки), и где они используются? (18.03.2003)
5. Какой тип данных предпочтительнее выбрать для хранения денежных величин? (23.03.2003)
6. Как при суммировании значений по датам показать строки для тех дат, в которых не было записей? (28.03.2003)
7. Как создавать и использовать автоинкрементные поля? (03.04.2003)
8. Как пронумеровать строки в возвращаемом наборе данных? (10.04.2003)

[Содержание]

#137<<  #138

Вопросы, предложения, коментарии, замечания, критику и т.п. присылайте Александру Гладченко на адрес: mssqlhelp@pisem.net

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

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




http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное