Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
MS SQL2k & MSAccess- узнать имя юзера?
|
|||
|---|---|---|---|
|
#18+
Подскажите можно ли при использовании WinNT логинов (т.е. не делая отдельных в MSSQL) получить имя пользователя? т.е. хотелось бы выводить запросы для каждого юзера свои и ограничивать своими данными из общей таблицы, для чего хотелось бы получать имя юзера - как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2001, 09:32 |
|
||
|
MS SQL2k & MSAccess- узнать имя юзера?
|
|||
|---|---|---|---|
|
#18+
suser_sname() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2001, 09:45 |
|
||
|
MS SQL2k & MSAccess- узнать имя юзера?
|
|||
|---|---|---|---|
|
#18+
Для аналогичной задачи я использую функцию VBA чтения данных из реестра (нашел в Инете): Option Compare Database Option Explicit 'Registry keys Public Const HKEY_CLASSES_ROOT = &H80000000 Public Const HKEY_CURRENT_USER = &H80000001 Public Const HKEY_LOCAL_MACHINE = &H80000002 Public Const HKEY_USERS = &H80000003 Public Const HKEY_PERFORMANCE_DATA = &H80000004 Public Const HKEY_CURRENT_CONFIG = &H80000005 Public Const HKEY_DYN_DATA = &H80000006 'Registry access constants Public Const KEY_QUERY_VALUE = &H1 'Permission to query subkey data. Public Const KEY_SET_VALUE = &H2 'Permission to set subkey data. Public Const KEY_CREATE_SUB_KEY = &H4 Public Const KEY_ENUMERATE_SUB_KEYS = &H8 Public Const KEY_NOTIFY = &H10 Public Const KEY_CREATE_LINK = &H20 Public Const KEY_READ = KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Public Const KEY_WRITE = KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Public Const KEY_ALL_ACCESS = KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_SUB_KEY Or KEY_CREATE_LINK Or KEY_SET_VALUE Public Const REG_OPTION_NON_VOLATILE = 0& Public Const REG_OPTION_VOLATILE = &H1 Public Type SECURITY_ATTRIBUTES nLength As Long lpSecurityDescriptor As Long bInheritHandle As Long End Type Public Type RegTypes RegNonee As Long RegSZ As Long RegExpandSz As Long RegBinary As Long RegDword As Long RegDwordLittleEndian As Long RegDwordBigEndian As Long RegLink As Long RegMultiSz As Long RegResourceList As Long RegFulResourceDesc As Long End Type Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long Private Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal szData As String, ByVal cbData As Long) As Long Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal szData As String, ByRef lpcbData As Long) As Long Private Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long Public Function RegGetValue(Root As Long, SubKey As String, Key As String) As String Dim rt As RegTypes rt = GetRegTypes Dim Buffer As String, hKey As Long, nType As Long, nSize As Long RegGetValue = "" If Not RegOpenKeyEx(Root, SubKey, 0, KEY_READ, hKey) Then nSize = 0 RegQueryValueEx hKey, Key, 0, nType, Buffer, nSize If hKey And nSize > 0 And nType = rt.RegSZ Then Buffer = Space(nSize + 1) RegQueryValueEx hKey, Key, 0, nType, Buffer, nSize RegGetValue = Left(Buffer, nSize - 1) RegCloseKey hKey End If End If End Function Public Sub RegSetValue(Root As Long, SubKey As String, Key As String, value As String) Dim rt As RegTypes rt = GetRegTypes Dim hKey As Long, sa As SECURITY_ATTRIBUTES, nDisp As Long If Not RegCreateKeyEx(Root, SubKey, 0, vbNull, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, sa, hKey, nDisp) Then RegSetValueEx hKey, Key, 0, rt.RegSZ, value, Len(value) + 1 RegCloseKey hKey End If End Sub Public Function GetRegTypes() As RegTypes With GetRegTypes .RegNonee = 0 .RegSZ = 1 .RegExpandSz = 2 .RegBinary = 3 .RegDword = 4 .RegDwordLittleEndian = 4 .RegDwordBigEndian = 5 .RegLink = 6 .RegMultiSz = 7 .RegResourceList = 8 .RegFulResourceDesc = 9 End With End Function 'Использование: 'sUser = RegGetValue(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion", "RegisteredOwner") 'Call RegGetValue(HKEY_CURRENT_USER, "SOFTWARE\ODBC\ODBC.INI\" & sDSN, "LastUser", sLastUser) 'RegSetValue HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion", "RegisteredOwner", "Darth Vader" 'RegGetValue(HKEY_LOCAL_MACHINE, "Software\Microsoft\Shared Tools©omctl32.ocx", "Path") 'Примечание: Эти функции работают только с текстовыми ключами (те, что в RegEdit'e помечены символом 'ab'). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2001, 10:19 |
|
||
|
MS SQL2k & MSAccess- узнать имя юзера?
|
|||
|---|---|---|---|
|
#18+
Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2001, 10:24 |
|
||
|
MS SQL2k & MSAccess- узнать имя юзера?
|
|||
|---|---|---|---|
|
#18+
Вообще-то что бы узнать имя юзера и имя его компьютера есть АПИшные функции GetUserName и GetComputerName, лезть за этим в реестр совсем необязательно. Но они должны вызываться на клиентской части, а я так понимаю что нужно другое. The GetUserName function retrieves the user name of the current thread. This is the name of the user currently logged onto the system. BOOL GetUserName( LPTSTR lpBuffer, // address of name buffer LPDWORD nSize // address of size of name buffer ); The GetComputerName function retrieves the computer name of the current system. This name is established at system startup, when it is initialized from the registry. BOOL GetComputerName( LPTSTR lpBuffer, // address of name buffer LPDWORD nSize // address of size of name buffer ); 2AlexUnik Что за Швондер вам эти тексты подсовывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2001, 12:49 |
|
||
|
MS SQL2k & MSAccess- узнать имя юзера?
|
|||
|---|---|---|---|
|
#18+
2 SergSuper Вы, наверное, меня непоняли... Я выражаю свое, а не Ваше мнение, когда привожу примеры. Вспомните, что я написал: "Для аналогичной задачи я использую функцию VBA чтения данных из реестра" - не функцию "АПИ", а именно функцию VBA. Хотя, не сомневаюсь, что Вы могли бы написать и эту функцию короче Быть может, мой совет не подходит к данной ситуации, но мне всегда хотелось придерживаться диалектического взгляда на проблему. Самое удивительное, что в моей работе мне это помогает. Я предпочитаю услышать сотню мнений различных людей, пусть и не всегда правильных, чем одно "абсолютно правильное" мнение знатока. PS. Честно говоря, насчет Швондера не понял... Мы здесь не кошек мучаем. Это что - выражение Вашего настроения или отношения к людям? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2001, 05:07 |
|
||
|
MS SQL2k & MSAccess- узнать имя юзера?
|
|||
|---|---|---|---|
|
#18+
2 AlexUnik Если чего обидное написал - прошу извинить, я просто хотел пощутить. Видимо не слишком удачно. А функции уже написаны MSом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2001, 06:52 |
|
||
|
MS SQL2k & MSAccess- узнать имя юзера?
|
|||
|---|---|---|---|
|
#18+
А Швондер кошек не мучал, он только давал Шарикову разные книжки(после них у Шарикова появлялись идеи типа "всё отобрать и поделить"), которые профессор Преображенский выкидывал в печку. Так что насчет моего "отношения к людям или выражения моего" настроения - вот тут я не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2001, 07:11 |
|
||
|
MS SQL2k & MSAccess- узнать имя юзера?
|
|||
|---|---|---|---|
|
#18+
2 SergSuper Насчет книжек - история хранит много примеров того, что одну и ту же книгу можно понимать по-разному (Библия в представлении инквизиции, Ницше в понимании Гитлера). Мое мнение не совпадает с Вашим - но это не повод для использования нарицательных литературных образов. Недавно Дед Маздай привел классический пример нашего спора (анекдот №10): http://www.anekdot.ru/an/an0107/010713.html PS. С удовольствием пообщался бы с Вами за кружечкой пива, когда будете в наших краях (т.е. Москве). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2001, 07:28 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32010538&tid=1826040]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
67ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 271ms |
| total: | 458ms |

| 0 / 0 |
