Funkcje serwerowe - umieszczanie ich w bazie

0

Witam,
Dlatego, że prawdopodobnie jedyną opcją rozwiązania mojego problemu jest napisanie funkcji serwerowej (T-SQL) chciałem się o nie dopytać.
Jeśli dobrze rozumiem funkcje takie są umieszczone są w bazie danych w katalogu Programmability.
Mam jednak pytanie w jaki sposób można je tam umieszczać? Czy istnieje możliwość dodania takiej funkcji w inny sposób niż poprzez SQL Management-a?
Czy mogę napisać taką funkcję w zewnętrznej aplikacji i dodać ją przy pomocy INSERT-u?
Chodzi o to, że mam program, który umożliwia korzystanie z takich funkcji w tym tworzenia zapytać SQL, ale nie mam w pracy bezpośredniego dostępu do bazy danych (SQL Management-u) a taka funkcja ułatwiłaby mi życie w pracy ;-).

Z góry dziękuję za pomoc.
pozdrawiam

0

Z tego co zrozumiałem, pragniesz uzyskać uprawnienia, których nie posiadasz. Powstaje więc pytanie: czy to jest fair wobec Twojego pracodawcy?

2

W MSSQL wszystko robisz za pomocą zapytań do bazy, Management Studio to tylko graficzna nakładka upraszczająca te wszystkie rzeczy (np. zakładanie struktur, backup bazy).
Co do funkcji to tutaj masz wszystko opisane: https://msdn.microsoft.com/pl-pl/library/ms186755%28v=sql.110%29.aspx

0
Webowiec napisał(a):

Z tego co zrozumiałem, pragniesz uzyskać uprawnienia, których nie posiadasz. Powstaje więc pytanie: czy to jest fair wobec Twojego pracodawcy?

Nie, źle mnie zrozumiałeś! Ja chcę tylko stworzyć taką funkcję i umieścić ją na serwerze z poziomu programu księgowego do którego mam dostęp i w którym można tworzyć zapytania SQL (na pewno SELECT - z innymi rodzajami zapytań nie próbowałem). Do tej pory nie bawiłem się w T-SQL-u i nie wiem jak to działa.

Paweł Dmitruk napisał(a):

W MSSQL wszystko robisz za pomocą zapytań do bazy, Management Studio to tylko graficzna nakładka upraszczająca te wszystkie rzeczy (np. zakładanie struktur, backup bazy).
Co do funkcji to tutaj masz wszystko opisane: https://msdn.microsoft.com/pl-pl/library/ms186755%28v=sql.110%29.aspx

Dzięki.
Z tego co udało mi się już ustalić to dla każdej takiej funkcji muszę tworzyć dodatkowo uprawnienia dla użytkowników? Czy można to zrobić również zapytaniem? Czy można stworzyć publiczną funkcję dostępną dla wszystkich użytkowników?

1

Edit:
Okey, sprawdziłem - można dodawać funkcje z poziomu programu księgowego ;-)
Nie wiem jeszcze tylko co z uprawnieniami ;-/ -> mam nadzieję, że nie będzie to zbyt kłopotliwe...

1

Nie wiem j jak jest to CDN, ale najczęściej program łączy się do serwera baz danych za pomocą jednego użytkownika, który ma pełne uprawnienia do bazy danych, natomiast uprawnienia programu są realizowane przez wewnętrzne tabele użytkowników i uprawnień. Tak więc powinieneś mieć dostęp do do wszystkich funkcji w bazie danych.
Tworząc funkcję musisz ją utworzyć w odpowiednim schemacie, w twoim przypadku będzie to CDN, np.

create function CDN.test_func (@parametr int)
Returns int
As
Return(select @parametr*2)
Go 
0

@Paweł Dmitruk dzięki za pomoc. Na chwilę obecną wszystko działa - jeszcze jutro przetestuję czy wszystko jest ok.
pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1